ビューベースのテーブルビューを並べ替えることができません。コアデータのエンティティを制御するarrayControllerを使用します。
列を選択しようとしましたが、属性インスペクターでその列に関連する属性名を並べ替えキーとして使用し、比較しました:セレクターとして...ビルドして実行するときにヘッダーをクリックすると、変化する矢印が表示されますクリックするたびに、行には何も起こりません。並べ替えなし。
どうすれば修正できますか?
簡単なものが足りないと思いますが、乗り越えられません。
ビューベースのテーブルビューを並べ替えることができません。コアデータのエンティティを制御するarrayControllerを使用します。
列を選択しようとしましたが、属性インスペクターでその列に関連する属性名を並べ替えキーとして使用し、比較しました:セレクターとして...ビルドして実行するときにヘッダーをクリックすると、変化する矢印が表示されますクリックするたびに、行には何も起こりません。並べ替えなし。
どうすれば修正できますか?
簡単なものが足りないと思いますが、乗り越えられません。
の使用を検討することをお勧めします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;
}