NSFetchedResultsController 啥都不返回
Posted
技术标签:
【中文标题】NSFetchedResultsController 啥都不返回【英文标题】: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
当我在返回前休息时,这就是表现。
没有部分,没有数据。
我确信我在这里遗漏了一些基本的东西,所以如果我需要分享更多信息,请告诉我。
非常感谢!
【问题讨论】:
【参考方案1】:您必须在获取的结果控制器上调用performFetch:
:
let aFetchedResultsController = NSFetchedResultsController(...)
aFetchedResultsController.delegate = self
var error : NSError?
if !aFetchedResultsController.performFetch(&error)
// report error ...
【讨论】:
谢谢,我知道这是基本的东西,我不敢相信我错过了。作为旁注,“let error...”将在“&error”处引发错误。似乎使用 var 而不是 let 可以清除它。再次感谢。以上是关于NSFetchedResultsController 啥都不返回的主要内容,如果未能解决你的问题,请参考以下文章