-1

注:この質問は、反対票が非常に多いため、完全に再編成されました。

コアデータで NSFetchedResults を使用して UITableViewController を表示しています。正常に表示されますが、新しいView Controllerをプッシュし、ユーザーが戻るボタンを使用して UITableView に戻ると、そのエラーでクラッシュします。

私はこれと何週間も戦ってきましたが、その理由がわかりません。メモリ管理に関連している可能性が高いと言えますが、どこにも見つかりません。

更新: Instruments-Zombies を使用すると、実際には CoreData でクラッシュしていることがわかった - prepareResultsForResultsSet。画像を見る ここに画像の説明を入力 ここに私の FetchedResultsController からのコードがあります

- (NSFetchedResultsController *)fetchedResultsController {

NSManagedObjectContext *thecontext;
thecontext = [(Logix_AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];

if (fetchedResultsController != nil) {
    return fetchedResultsController;
}

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"TimeOff" inManagedObjectContext:thecontext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"timeOffStartDate" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:thecontext sectionNameKeyPath: @"timeOffType" cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
fetchedResultsController.delegate = self;
[sort release];
[fetchRequest release];
[theFetchedResultsController release];
return fetchedResultsController;    
}
4

1 に答える 1