このスクリーンショットに示すように、次のカレンダー期間で構成され、モデル化されていますNSArray
。NSManagedObjects
次のサンプル コンテンツを使用します。
endMonth = 9;
endYear = 2012;
length = 3;
...
私がやろうとしていること:
1 年前の同等の期間が存在する暦期間のみを返す述語を作成しようとしています。例:配列2012, 9, 3
に期間がある場合にのみ、期間 (年、月、長さ) を結果として返します。2011, 9, 3
述語は、すべてのカレンダー期間を配列内の各カレンダー期間と比較する必要があります。
これは私が試した述語です:
predicate = [NSPredicate predicateWithFormat:
@"SUBQUERY(SELF, $x, $x.endYear == endYear - 1 "
"AND $x.endMonth == endMonth AND $x.length = length).@count > 0"];
問題:
ただし、この述語を使用してアプリを実行すると、ランタイム クラッシュが発生し、次のエラー メッセージが表示されます: NSInternalInconsistencyException', reason: 'Can't perform collection evaluate with non-collection object.'。
述語の何が問題なのですか? また、述語を正しく指定するにはどうすればよいですか?
ありがとうございました!