2013-02-25 69 views
0

我試圖設置一個基本的NSFetchedResultsController,它從我們下面的錯誤拋出一個「空」的錯誤。由於錯誤和它的userInfo都是null,我不知道我甚至可以開始做什麼來解決發生了什麼問題。這是「讓你的頭撞到磚牆上,不被告知爲什麼」節目的時刻之一。這裏是造成崩潰的部分,這是在viewDidLoad從錯誤返回的NULL錯誤NSFetchedResultsController

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; 
} 

我在做什麼錯?

回答

0

嘗試更換

[_fetchedResultsController performFetch:&error] 

,而不是

[self.fetchedResultsController performFetch:&error] 

原因如果_fetchedResultsController不alloced,你會不會派遣-fetchedResultsController方法,只有你用self.fetchedResultsController,getter方法會出動。

+0

似乎就是這樣,謝謝。我得到一個對象不能是零陣列現在錯誤.. – Luke 2013-02-25 12:42:23

+0

我得到它在這一行上︰NSFetchedResultsController theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:[self managedObjectContext] sectionNameKeyPath:nil cacheName: @ 「」]; ' – Luke 2013-02-25 12:44:09

+0

@lukech當你分配視圖控制器時,你保留了managedObjectContext嗎? B.t.w,最好是提出一個新問題,而不是繼續回答下面的評論。 :) – Kjuly 2013-02-25 12:47:19