Capturing UITextView data in an NSString
I am trying to accomplish something very simple yet getting an error and it's driving me nuts.
here is what I am doing:
Function 1:
-(id)initWithText:(NSString *)text1 :(NSString *)text2 :(NSString *)text3 :(NSString *)text4 :(NSString *)text5
{
here I do the assignment. I have not initialized the NSString date, projectName, task, duration and comment, but I don't see that causing any trouble.
date=text1;
projectName=text2;
task=text3;
duration=text4;
if ([text5 isEqualToString:@"Add Comment"]==TRUE || [text5 isEqualToString:@""]==TRUE)
{
comment=@"No Comment";
}
else {
comment=text5;
}
开发者_运维知识库
date, duration, task ,projectname, comment are all NSString type.
This function gets called in a different viewController using the statement:
Function1 Call:
[self.summaryViewController initWithText:self.dateDisplay.text :self.projectNameDisplay.text:self.taskDisplay.text:self.durationDisplay.text:commentText.text];
where dateDisplay, projectNameDisplay, taskDisplay, durationDisplay are all UILabels and commentText is a UITextView
now I try to save the values captured through the function into a database using another function.
Function2:
-(void) insertValues:(NSString *)text1 :(NSString *)text2 :(NSString *)text3 :(NSString *)text4 :(NSString *)text5
{
if([self openDB]==TRUE)
{
NSString *sql = [NSString stringWithFormat:@"INSERT INTO mastertable(_date,_projectName,_task,_duration,_comment,_status) VALUES ('%@','%@','%@','%@','%@','Pending');",text1, text2, text3, text4, text5];
char *err;
NSLog(sql);
if(sqlite3_exec(database,[sql UTF8String], NULL, NULL, &err) !=SQLITE_OK)
{
NSAssert(0, @"error inserting values into table");
sqlite3_close(database);
}
else
{
NSLog(@"Entry Made");
sqlite3_close(database);
}
}
}
Function2 call:
[master insertValues:date :projectName :task :duration :comment];
My insert into table query, when printed in NSLog, throws up this:
INSERT INTO mastertable(_date,_projectName,_task,_duration,_comment,_status) VALUES (' Aug 26, 2010',' Staffing',' Mentoring',' 01:01',
'( > )'
,'Pending');
I think it's because of the conversion of UITextView to NSString
Please help
Sayeed
UITextViews text property has NSString as return value, so that should not be the Problem
Make sure the UITextField
is properly initialized. Looks like it is pointing somewhere into memory.
@ tob,
Hey, tob I wrote the wrong code. Actually, I am not doing any casting; I am just initializing. And here is the code:
I have a UITextView commentText.text and I am extracting it's contents once the user feeds it to store it in NSString *str. NSString *str= commentText.text;
which is behaving horrendously. When I try retrieving the value stored in str i get weird messages like "CA Layer 1048w@#" and when I insert breakpoints to check it says variable not a CFString.
However, if I create another UITextView commentText2.text just like the first one and set its size to zero as I don't want it on my screen and I do this,
commentText2.text=commentText.text;
and pass commentText2.text as the argument for my insert query, the value gets saved in the database right and is retrieved right. Have I expressed myself?
精彩评论