实体包含CLPlacemark
属性。
我想检查city
字符串是否与地标的locality属性匹配。
在谓词中使用performFetch
时,CONTAINS
发生了崩溃。
predicate = [NSPredicate predicateWithFormat:@"placemark.locality CONTAINS[cd] %@", city];
[_fetchedResultsController.fetchRequest setPredicate:predicate];
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
答案 0 :(得分:0)
Core Data中保存的地标不能是CLPlacemark
,因为Core Data不支持该类型。
那么,谓词中的placemark
是NSManagedObject,其属性locality
的类型是NSString吗?如果不是,则崩溃不是由CONTAINS引起的,而是由于谓词试图访问不存在的属性placemark.locality
。
因此,如果您的地标作为二进制数据类型保存在Core Data中,则无法访问其组件,也无法编写引用其locality属性的谓词。