0

ビューベースのテーブルビューを並べ替えることができません。コアデータのエンティティを制御するarrayControllerを使用します。

列を選択しようとしましたが、属性インスペクターでその列に関連する属性名を並べ替えキーとして使用し、比較しました:セレクターとして...ビルドして実行するときにヘッダーをクリックすると、変化する矢印が表示されますクリックするたびに、行には何も起こりません。並べ替えなし。

どうすれば修正できますか?
簡単なものが足りないと思いますが、乗り越えられません。

4

1 に答える 1

1

の使用を検討することをお勧めしますNSFetchedResultsController。のAppleドキュメントからNSFetchedResultsController

フェッチされた結果コントローラーを使用して、Core Dataフェッチ要求から返された結果を効率的に管理し、UITableViewオブジェクトにデータを提供します。

コードは次のようになり、ソート記述子を提供する行は。で始まりますNSSortDescriptor

- (NSFetchedResultsController *)fetchedResultsController
{
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"YourEntityName"
                                              inManagedObjectContext:yourManagedObjectContext];
    [fetchRequest setEntity:entity];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"YourSortKey"
                                                                   ascending:YES];

    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
    [fetchRequest setSortDescriptors:sortDescriptors];

    NSError *error = nil;
    NSArray *fetchedObjects = [yourManagedObjectContext executeFetchRequest:fetchRequest 
                                                                      error:&error];
    if (fetchedObjects == nil) {
        // Handle the error
    }

    yourFetchedResultsController = [[NSFetchedResultsController alloc] 
            initWithFetchRequest:fetchRequest 
            managedObjectContext:self.managedObjectContext
              sectionNameKeyPath:nil
                       cacheName:nil];

    return yourFetchedResultsController;
}
于 2013-03-02T21:21:04.013 に答える