私のコードでは、レコードが既に存在するかどうかを確認して確認したいので、レコードを作成するか更新するかを知っています。しかし、私は問題に遭遇しました。問題は、これを使用するときです。
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];
フォーマット文字列で何が欠けているか、間違っていますか?