【发布时间】:2012-09-13 20:02:33
【问题描述】:
在我的代码中,我想检查一条记录是否已经存在,所以我知道是创建它还是更新它。但是我遇到了一个问题。问题是当我使用这个时:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%@ == %@", ATTRIBUTE_ID, idNumber];
[request setPredicate:pred];
这不起作用。它总是声称没有找到任何结果。但是,当我像这样重写它时它工作得很好:
NSExpression *lhs = [NSExpression expressionForKeyPath:ATTRIBUTE_ID];
NSExpression *rhs = [NSExpression expressionForConstantValue:idNumber];
NSPredicate *pred = [NSComparisonPredicate
predicateWithLeftExpression:lhs
rightExpression:rhs
modifier:NSDirectPredicateModifier
type:NSEqualToPredicateOperatorType
options:0];
[request setPredicate:pred];
我在格式字符串中遗漏了什么或做错了什么?
【问题讨论】:
-
Monolo 的答案是正确的,但我建议使用这种方法而不是格式一。这个更快。
标签: objective-c cocoa foundation