1

「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にかなり慣れていないので、キューまたはスレッドが関係しているかどうかは絶対にわかりません。しかし、私はあなたが言ったことを調べますありがとう!

4

1 に答える 1

0

本当に言うには十分な情報がありません。テーブルビューの作成/作成に関連する詳細を投稿する必要があります。

ただし、これは古典的な競合状態のように聞こえます。関係するスレッドまたはキューはありますか?

于 2012-05-26T15:52:53.207 に答える