我正在使用CLPlacemark
在核心数据中保存NSValueTransformer
。 (所以它保存为NSData
)
但是我已经到了需要根据另一个CLPlacemark
对象过滤保存的对象的地步。
我试过这个,它不起作用:
NSExpression *exprPath = [NSExpression expressionForKeyPath:@"placemark"];
NSExpression *exprKeyword = [NSExpression expressionForConstantValue:[NSKeyedArchiver archivedDataWithRootObject:placemark]];
NSPredicate *predicate = [NSComparisonPredicate predicateWithLeftExpression:exprPath rightExpression:exprKeyword modifier:NSDirectPredicateModifier type:NSEqualToPredicateOperatorType options:0];
那么还有其他建议吗?
答案 0 :(得分:1)
核心数据支持==和!=搜索二进制数据(和可转换属性)。不要将 NSKeyedArchiver 用于地标。只需在谓词中使用它就像这样:
[NSPredicate predicateWithFormat:@"placemark = %@", placemark]