1

我正在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];

那么还有其他建议吗?

4

1 回答 1

1

Core Data 支持 == 和 != 搜索二进制数据(和可转换的属性)。不要使用NSKeyedArchiver作为地标。就像这样在谓词中使用它:

[NSPredicate predicateWithFormat:@"placemark = %@", placemark]
于 2013-03-04T16:08:28.667 回答