0

实体包含CLPlacemark属性。我想检查city字符串是否与地标的位置属性匹配。

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();
        }
4

1 回答 1

0

保存在 Core Data 中的地标不能是 a CLPlacemark,因为 Core Data 不支持该类型。

那么,在您的谓词中是一个具有NSString 类型placemark属性的 NSManagedObject吗?locality如果不是,则崩溃不是由于 CONTAINS 而是由于谓词试图访问placemark.locality不存在的属性。

因此,如果您的地标作为二进制数据类型保存在 Core Data 中,您将无法访问其组件,也无法编写引用其位置属性的谓词。

于 2012-12-01T07:19:40.570 回答