3

seconds という名前の int_32 プロパティを持つ属性があります。カテゴリでは、プロパティを読み取り専用として再記述し、getter をオーバーライドして他のプロパティから作成します。問題は私が使用するときです

[NSPredicate predicateWithFormat:@"SELF.seconds > %i"];

getter が述語によって呼び出されないため、述語は機能しません。述語ではなく、他のコードで問題なく呼び出されます。なぜこれが起こるのか、またはこの問題を回避する方法を知っている人はいますか? (NSFetchedResultsController を再作成する以外に)。

4

1 に答える 1

4

述語は SQL に変換され、ストアで実行されます。それはあなたのコードを実行しません。そのため、データ ストアに格納された値のみを使用できます。一時的な属性もメソッドもありません。

フェッチで属性を使用する場合は、値を保存する必要があります。willSaveこれは、他の値の変更が保存される直前に値を実装して設定することで実行できます。

于 2013-09-01T12:48:33.340 に答える