我使用这个代码来从核心数据的东西:IOS NSPredicate崩溃时
NSFetchRequest *req = [[NSFetchRequest alloc] initWithEntityName:@"Friend"];
NSString *predicateString = [NSString stringWithFormat:
@"identifier == %@", [[friendInfo objectForKey:@"id"] stringFromMD5]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateString];
req.predicate = predicate;
req.fetchLimit = 1;
NSError *requestError = nil;
NSArray *tmp = [self.managedObjectContext executeFetchRequest:req error:&requestError];
但它崩溃的
NSString *predicateString = [NSString stringWithFormat:
@"identifier == %@", [[friendInfo objectForKey:@"id"] stringFromMD5]];
如果我删除stringFromMD5方法调用,它的工作原理。
NSString *predicateString = [NSString stringWithFormat:
@"identifier == %@", [friendInfo objectForKey:@"id"]];
任何ideea为什么? 感谢
是什么'的输出[friendInfo objectForKey:@ “ID”] stringFromMD5]'? – holex 2012-07-20 13:07:18
这是predicateString的“日志记录”标识符== 4ccb5c86bfe2407cbdb4142850c877ae“ – user1078065 2012-07-20 13:11:52
您不应该使用'stringWithFormat:'并为谓词自己构建字符串,因为它可能需要一些不同的语法来构建predicateWithFormat:方法,但不能NSString的。例如,字符串被封装在''''中,这就是为什么你的谓词失败的原因。 – JustSid 2012-07-20 13:19:53