1

NSValueTransformersを使用してCoreDataモデルの属性(文字列、日付など)を暗号化していますが、NSFetchedResultsControllerでの並べ替えに干渉していると確信しています。

これを回避する方法があるかどうか誰かが知っていますか?ソートの実行方法に依存すると思います。それが常にデータベース上で直接実行されるだけである場合、私はおそらく運が悪いです。オブジェクト自体でソートする場合は、ソートが発生する前に変換をアクティブ化する方法があるかもしれません。

ただし、コレクションのサブセットを取得するにはソートが重要であるため、データベースに直接あると思います。これは、とにかくNSFetchedResultsControllerの主な利点です。

注:ここで奇妙な動作があることを付け加えておきます...コレクションは最初のセッション(オブジェクトが作成されるセッション)ではソートされませんが、後続のセッション(オブジェクトが既に存在し、取得中)。したがって、ソートトランスフォーマブルで機能する可能性がありますが、最初に保存する必要があるという点で注意が必要です(?)

4

1 に答える 1

1

内でソートしている場合NSFetchedResultsController、それはストア(つまりデータベース)に対してです。ただし、結果がメモリ内にあり、呼び出して復号化されている場合は、結果に対して「セカンダリ」ソートを実行できます。-sortedArrayUsingDescriptors:

アップデート

あなたの一貫性のない振る舞いは、おそらくすでにメモリにあるものとディスクから直接読み取られているものに基づいていると思います。

于 2010-03-08T23:14:52.487 に答える