0

基本を設定しようとしてNSFetchedResultsControllerいますが、以下のエラーから「null」エラーがスローされます。エラーとそのuserInfoの両方がnullであるため、何が問題になっているのかを解明するために何を始めればよいのかわかりません。これは、「頭をレンガの壁にぶつけて、なぜプログラミングの瞬間かわからない」ものの1つです。クラッシュの原因となっている部分は次のviewDidLoadとおりです。

NSError *error;
if (![_fetchedResultsController performFetch: &error]) {
    NSLog(@"Error! %@, %@", error, [error userInfo]);
    abort();
}

そして、コントローラーをセットアップする方法は次のとおりです。

- (NSFetchedResultsController *) fetchedResultsController
{
    if (_fetchedResultsController != nil) {
        return _fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName: @"Quote" inManagedObjectContext: [self managedObjectContext]];
    [fetchRequest setEntity:entity];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:nil ascending: YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
    [fetchRequest setSortDescriptors:sortDescriptors];

    [fetchRequest setFetchBatchSize: 50];

    NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest: fetchRequest managedObjectContext: [self managedObjectContext] sectionNameKeyPath: nil cacheName: @"Root"];
    self.fetchedResultsController = theFetchedResultsController;
    _fetchedResultsController.delegate = self;

    return _fetchedResultsController;
}

私は何が間違っているのですか?

4

1 に答える 1

0

交換してみてください

[_fetchedResultsController performFetch:&error]

それ以外の

[self.fetchedResultsController performFetch:&error]

原因_fetchedResultsControllerが割り当てられていない場合、メソッドはディスパッチされませ-fetchedResultsControllerん。使用するだけself.fetchedResultsControllerで、getterメソッドがディスパッチされます。

于 2013-02-25T12:40:08.810 に答える