2

要するに :

@propertyエンティティを取得し、ではないに従ってそれらをソートすると、2 回目の実行時にattribute(関連する) バグが発生しNSDictionaryMapNodeます。

それは正常ですか、それともバグですか?それについてコメントやヘルプはありますか?


長い :

状況は以下です。

Entityと の2 つの属性を持つ がattribute1ありますattribute2

[1]クラスを生成し、 という名前のクラスEntity.mを追加しました。したがって、は私のクラスですが、エンティティの属性ではありません。ちなみに、は(と連結したようなものだとしましょう。@propertymyPropertymyProperty@propertyEntity.mEntitymyPropertyreadonlyattribute1attribute2

今、私は次のことを行います:

NSManagedObjectContext * myContext = ... ;
NSFetchRequest * myRequest = [NSFetchRequest fetchRequestWithEntityName:@"Entity"];
NSSortDescriptor * mySortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"myProperty"
                                                                    ascending:YES] ;
NSError *error ;

[myRequest setSortDescriptors:@[mySortDescriptor]] ;

NSArray * result  = [myContext executeFetchRequest:myRequest
                                             error:&error] ;
  • このコードが初めて実行されるとき、バグはありません。

  • 2 回目は、次のバグが発生します。

    [<NSDictionaryMapNode 0x1020cf310> valueForUndefinedKey:]: this class is not key value coding-compliant for the key myProperty.
    

myPropertyの属性ではないことに問題があることは理解していますEntity。私の投稿の目的は、この状況を提起し、この状況について何かコメントがあるかどうかを知ることです.

[1] mogenerator (https://github.com/rentzsch/mogenerator) を使用。

4

1 に答える 1

2

これは知られています。ストアに常設されていないものは並べ替えできません。決して機能しないはずです (初めて機能するということは、MOC などを持っていないことを意味します)。

エンティティに永続的な新しい属性を追加する必要があります。依存キーを実装willSaveまたは監視し、そのトリガーを使用して新しい属性の値を更新するなどの操作を行います ( myProperty)。


コア データ プログラミング ガイドのセクションFetch Predicates and Sort Descriptorsを参照してください。

于 2013-10-16T11:08:31.593 に答える