嘿所有,
我正在努力完成一些非常简单而又出错的事情,这让我疯狂。
这是我正在做的事情:
功能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
请帮忙
赛义德
答案 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作为我的插入查询的参数,该值将被保存在数据库中并被正确检索。 我表达了自己的意思吗?