【问题标题】:NSFetchedResultsController returning nothingNSFetchedResultsController 什么都不返回
【发布时间】:2015-05-25 13:27:41
【问题描述】:

当我对核心数据中包含数据的表进行提取时,它似乎没有返回任何结果。

在进行提取之前,我已经对表执行了读取操作,并且数据就在那里。

这里是代码。

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

}

当我在返回前休息时,这就是表现。

没有部分,没有数据。

我确信我在这里遗漏了一些基本的东西,所以如果我需要分享更多信息,请告诉我。

非常感谢!

【问题讨论】:

    标签: ios swift nsfetchedresultscontroller


    【解决方案1】:

    您必须在获取的结果控制器上调用performFetch:

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

    【讨论】:

    • 谢谢,我知道这是基本的东西,我不敢相信我错过了。作为旁注,“let error...”将在“&error”处引发错误。似乎使用 var 而不是 let 可以清除它。再次感谢。
    猜你喜欢
    • 2012-06-18
    • 2018-09-10
    • 2017-02-14
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多