「if(coordinator!= nil){」の行にブレークポイントを置くと、コアデータから作成されたテーブルビューが正しく機能します。
コード内のその前のどこかにブレークポイントを削除または配置すると、テーブルビューのセルが表示されません。
- (NSManagedObjectContext *) sharedManagedObjectContext {
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator: coordinator];
[_managedObjectContext setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];
}
return _managedObjectContext;
}
私はこれがどのように起こっているのかについての手がかりがなく、これに似た他の状況を見つけるのにほとんど運がありませんでした。
よろしくお願いします!
編集1:
これがcoredataからデータをフェッチするために使用されているコードです
- (BOOL) setupFetchedResultsController:(NSError **) error {
self.managedObjectContext = [[PhotoBreezePersistentStoreManager shared] sharedManagedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"GeoTrack" inManagedObjectContext:self.managedObjectContext]];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"trackName" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
controller.delegate = self;
self.fetchedResultsController = controller;
return [controller performFetch:error];
}
上記のコードのいずれかにブレークポイントを設定すると...
後: "self.managedObjectContext = [[PhotoBreezePersistentStoreManager shared] sharedManagedObjectContext];"
...それでも機能します。
私はobjective-c/cocoaにかなり慣れていないので、キューまたはスレッドが関係しているかどうかは絶対にわかりません。しかし、私はあなたが言ったことを調べますありがとう!