2015-05-25 186 views
-1

當我對其中包含數據的核心數據中的表執行提取時,它似乎沒有返回任何結果。NSFetchedResultsController什麼都不返回

在執行提取操作之前,我已經在表上執行了讀操作,並且數據在那裏。

這是代碼。

func fetchAllFoods() -> NSFetchedResultsController { 
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let context: NSManagedObjectContext = appDel.managedObjectContext! 

    let fetchRequest = NSFetchRequest() 

    //3 - set the correct table 
    let entity = NSEntityDescription.entityForName(self.entityName, inManagedObjectContext: context) 
    fetchRequest.entity = entity 

    fetchRequest.fetchBatchSize = 20 

    let sectionSortDescriptor = NSSortDescriptor(key: "foodCategory", ascending: true) 

    let sortDescriptors = [sectionSortDescriptor] //, secondSortDescriptor] 

    fetchRequest.sortDescriptors = sortDescriptors 

    //4 - navigate in relationship to group by startdate 
    let aFetchedResultsController = NSFetchedResultsController(
     fetchRequest: fetchRequest, 
     managedObjectContext: context, 
     sectionNameKeyPath: "foodCategory", 
     cacheName: nil) 

    aFetchedResultsController.delegate = self 


    return aFetchedResultsController 

} 

當我在返回之前休息時,這就是顯示。

enter image description here

號段,沒有數據。

我相信我錯過了一些基本的東西,所以讓我知道我是否需要分享更多信息。

非常感謝!

回答

1

你必須調用獲取的成果控制器上performFetch:

let aFetchedResultsController = NSFetchedResultsController(...) 
aFetchedResultsController.delegate = self 
var error : NSError? 
if !aFetchedResultsController.performFetch(&error) { 
    // report error ... 
} 
+0

謝謝,我知道這是一些基本的東西,我不能相信我錯過了。 作爲一個附註,「讓錯誤...」會在「&error」處發生錯誤。似乎使用var而不是讓它清除它。 再次感謝。 –

+0

@WadeCantley:是的,'var'是正確的,固定的。 –