データをループ処理し、インポート プロセス中に重複レコードを無視する Core Data インポーターがあります。
しかし、NSFetchRequest が保存されていない最近保存されたレコードと一致しないことがわかりました。そして、一見同一のクエリが異なる予期しない結果をもたらすのを見ています。
たとえば、私のテストでは、次のクエリが一致して結果を返すことがわかりました。
fetchTest.predicate = [NSPredicate predicateWithFormat:@"%K = 3882", @"intEmployee_id"];
しかし、この一見同一のものはそうではありません:
fetchTest.predicate = [NSPredicate predicateWithFormat:@"%K = %@", @"intEmployee_id", @"3882"];
ただし、コンテキストが永続ストアに保存された後は、両方とも同じように一致します。
Apple のドキュメントによると、フェッチはデフォルトで保留中の変更に対して機能するはずであり、実際に [fetchTest includesPendingChanges] = YES に準拠しています。
ここで一体何が起こっているのか、何か考えはありますか? これらの 2 つのフェッチが異なる結果を返す可能性があるのはなぜですか?