まず第一に、これは私の最初の質問です。
NSPredicate の奇妙な動作の数学関数に気付いた人はいますか?
私の例は次のとおりです。
1)インターフェースを備えた出発クラスがあります:
@interface OTDeparture : NSManagedObject
@property (nonatomic, retain) NSNumber * position;
@end
2)述語を使用してフェッチリクエストを作成します:
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"(position-1)*(position-1) > 0"];
結果は常にゼロ オブジェクトです (述語は常に NO です)。また、「(2-1)*(2-1) > 0」および「(位置-1)*位置 > 0」の形式でも同じことが行われます。
これらの述語形式は期待どおりに機能します (期待どおりにオブジェクトを返します)。
"2*(position-1) > 0"
"2*2 > 0"
"position-3 > 0"
私は何か間違ったことをしていますか、それともこれは本当にバグですか? 私はサードパーティのものを使用しておらず、Apple が提供するコードのみを使用しています。