【发布时间】:2016-10-18 19:02:25
【问题描述】:
在观看有关核心数据的 youtube 教程时(https://youtu.be/mEAav7dM4hk?t=1581)* 我成功地能够保存数据,但是当我尝试按“searchperson”按钮获取数据时,它会引发错误:
I HAVE GOT TWO TEXT FIELDS :firstname and lastname
I HAVE GOT THREE BUTTONS :addperson, sarchperson and deleteperson
I HAVE GOT ONE DISPLAY LABEL TO TELL WHETER DATA(person) ADDED OR NOT
error:
CoreDataTutorialz2[1601:907] *** Terminating app due to
uncaught exception 'NSInvalidArgumentException', reason:
'Unable to parse the format string "firstname like %@,
lastname like %@"'
-(IBAction)searchperson:(id)sender
{
NSEntityDescription *entitydesc=[NSEntityDescription entityForName:@"Person" inManagedObjectContext:context];
NSFetchRequest *request=[[NSFetchRequest alloc]init];
[request setEntity:entitydesc];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"firstname like %@, lastname like %@",self.firstnametextfield.text,self.lastnametextfield.text];
[request setPredicate:predicate];
NSError *error;
NSArray *matchingData=[context executeFetchRequest:request error:&error];
NSLog(@"error:%@",error);
if(matchingData.count <=0)
{
self.displaylabel.text=@"no person found";
}
else
{
NSString *first_name;
NSString *last_name;
for(NSManagedObject *obj in matchingData )
{
first_name=[obj valueForKey:@"firstname"];
last_name=[obj valueForKey:@"lastname"];
}
self.displaylabel.text= [NSString stringWithFormat:
@"firstname=%@, lastname=%@",first_name,last_name];
}
https://youtu.be/mEAav7dM4hk?t=1581
CAN ANYONE HELP ME OUT WHATS WRONG HERE. THANKS IN ADVANCE!
【问题讨论】:
-
任何人都可以帮我解决这里的问题。提前致谢!
-
firstname like %@ AND lastname like %@或firstname like %@ OR lastname like %@根据您的需要。 -
我有两个文本字段:名字和姓氏我有三个按钮:addperson、sarchperson 和 deleteperson 我有一个显示标签来告诉数据(人)是否添加或没有
-
停止大喊大叫(使用大写字母)。我给你的解决方案应该可以修复谓词错误。
-
@Larme 抱歉使用大写字母,感谢您的帮助,但使用后问题仍然存在,现在错误是:无法解析格式字符串“firstname like %@, and lastname like % @"'
标签: objective-c core-data nspredicate