我需要使用像这样的NSPredicate:
NSString *authorNameAndLastName = @"Name LastName";
[NSPredicate predicateWithFormat:@"%@ beginswith[cd] %K",authorNameAndLastName,@"name"]
但它不起作用,我收到了这个例外:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate ("Name LastName" BEGINSWITH[cd] name).'
经过大量尝试后,我想我不能在谓词表达式的右侧放置一个键路径(名称)。
这是对的吗?
在这种特定情况下,有一种解决方法可以获得我需要的东西吗?
答案 0 :(得分:0)
这仅适用于数组和集合。核心数据不支持这种类型的谓词。
您是否尝试过使用[NSPredicate predicateWithBlock:]?
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(YourObject *object, NSDictionary *bindings) {
NSComparisonResult result = [authorNameAndLastName object.name options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [object.name length])];
if (result == NSOrderedSame) {
return YES;
}
return NO;
}];