【问题标题】:core data unable to fetch data due to error: unable to format the parse string nspredicatecore data 由于错误无法获取数据:无法格式化解析字符串 nspredicate
【发布时间】: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


【解决方案1】:

经过http://stackoverflow.com/questions/31468095/nspredicate-with-core-data?rq=1后找到的解决办法

NSPredicate *predicate =[NSPredicate predicateWithFormat:@"firstname CONTAINS %@ AND lastname CONTAINS %@",self.firstnametextfield.text,self.lastnametextfield.text ];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多