捕获NSString中的UITextView数据

时间:2010-08-26 11:27:40

标签: iphone

alt text 嘿所有,

我正在努力完成一些非常简单而又出错的事情,这让我疯狂。

这是我正在做的事情:

功能1:

-(id)initWithText:(NSString *)text1 :(NSString *)text2 :(NSString *)text3 :(NSString *)text4 :(NSString *)text5

{

这里我做了作业。我没有初始化NSString日期,projectName,任务,持续时间和评论,但我没有看到这会造成任何麻烦。

 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都是NSString类型。

使用以下语句在另一个viewController中调用此函数:

Function1致电:

[self.summaryViewController initWithText:self.dateDisplay.text :self.projectNameDisplay.text:self.taskDisplay.text:self.durationDisplay.text:commentText.text];

其中dateDisplay,projectNameDisplay,taskDisplay,durationDisplay都是UILabels,而commentText是UITextView


现在我尝试使用另一个函数将通过函数捕获的值保存到数据库中。

功能2:

-(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调用:

[master insertValues:date :projectName :task :duration :comment];

我在NSLog中打印时插入到表查询中会抛出这个:

INSERT INTO mastertable(_date,_projectName,_task,_duration,_comment,_status)VALUES('Aug 26,2010','Staffing','Mentoring','01:01',

'(>)'

, '待处理');

我认为这是因为UITextView转换为NSString

请帮忙

赛义德

3 个答案:

答案 0 :(得分:0)

UITextViews文本属性将NSString作为返回值,因此不应该是问题

答案 1 :(得分:0)

确保UITextField已正确初始化。看起来它指向内存。

答案 2 :(得分:0)

@ tob,

嘿,我写了错误的代码。实际上,我没有做任何演员;我刚刚初始化。这是代码:

我有一个UITextView commentText.text,一旦用户将其提供给NSString * str,我就会提取它的内容。 NSString * str = commentText.text;

表现得非常糟糕。当我尝试检索存储在str中的值时,会得到奇怪的消息,例如“CA Layer 1048w @#”,当我插入断点来检查它时,变量不是CFString。

但是,如果我创建另一个UITextView commentText2.text就像第一个一样,并将其大小设置为零,因为我不希望它在我的屏幕上,我这样做,

commentText2.text = commentText.text;

并传递commentText2.text作为我的插入查询的参数,该值将被保存在数据库中并被正确检索。 我表达了自己的意思吗?