1

マスター/ディテール アプリケーション プロジェクトを作成した後、MasterViewController.m 内の次のコード行を置き換えました。

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
            initWithKey:@"timeStamp"
              ascending:YES
             comparator:^NSComparisonResult (id obj1, id obj2)
             {
                return NSOrderedSame;
             }];

これは、私が Apple コード テンプレートに加えた唯一の変更です。Simulator 6.0 で実行すると、データの取得時にコードがクラッシュします...

if (![self.fetchedResultsController performFetch:&error]) {

objc_exception_throw で。ところで、このコードは Simulator 5.1 で動作します。何が問題なのですか?前もって感謝します。

4

1 に答える 1

1

Objective-C ベースのソート記述子は、フェッチ要求では使用できません。

「コアデータプログラミングガイド」から:

... 要約すると、ただし、フェッチを直接実行する場合は、通常、Objective-C ベースの述語またはソート記述子をフェッチ要求に追加しないでください。代わりに、これらをフェッチの結果に適用する必要があります。

ところで、すべてのオブジェクトを等しくするソート記述子が本当に必要ですか?

于 2012-09-27T19:31:32.933 に答える