NSFetchedResultsController performFetch不起作用

时间:2015-10-02 08:00:52

标签: ios uitableview core-data nsfetchedresultscontroller nsfetchrequest

我在屏幕上有分段控件。 1个分段项目用于广告(广告表格),第2个分段项目用于订单(订单表格)。 每当用户选择分段项时,我重新创建NSFetchResultController的实例,并向另一个数据表添加新的获取请求(但在UI上我总是只有一个UITableView self.tableViewMain):

let entityName = screen == ProfileScreen.Ads ? kDB_entity_DBAd : kDB_entity_DBOrder
let entityDescription = NSEntityDescription.entityForName(entityName, inManagedObjectContext: (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext)
let fetchRequest = NSFetchRequest()
fetchRequest.entity = entityDescription
self.fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: (UIApplication.sharedApplication().delegate! as! AppDelegate).managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
do {
    try fetchedResultsController!.performFetch()
} catch {
    print("An error occurred in fetchresultcontroller")
}

但是第一次正确地重新加载数据,但是第二次fetchresultcontroller甚至没有重新加载表(numberOfRowsInSection and cellForRowAtIndexPath没有被调用)。所以当我调用fetchedResultsController!.performFetch()

时,第二次NSFetchResultController的新实例(与核心数据中的第二个表相关)没有做任何事情

1 个答案:

答案 0 :(得分:1)

您应该调用tableViewMain.reloadData()让表重新加载。