私はいくつかの問題で立ち往生し、2日間探した後、解決策を見つけましたが、なぜそれが機能するのかわかりませんでした。
まず、次のコードを使用してNSFetchedResultsControllerを初期化します(多くの自動生成されたように見えます)。
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController != nil)
return fetchedResultsController;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Profile"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
NSError *error = nil;
//[aFetchedResultsController performFetch:&error];
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];
return fetchedResultsController;
}
コメントされた文字列を見てください-これらの文字列はありませんでした、そして私がデータを要求したとき-私は何も得られませんでした(そしてそれはそこにありました!)。その行のコメントを外すと、動作を開始します。明らかなようですが、私が以前に見たすべての例はその線ではありませんでした。そして、彼らは働きます。どうしてそれができますか?何が間違っているのか知りたいだけです。