简体   繁体   中英

Capturing UITextView data in an NSString

替代文字 Hey all,

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文本属性具有NSString作为返回值,因此不应该是问题

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?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM