У меня есть сегментированный контроль на экране. 1 сегментированный элемент предназначен для рекламы (таблица объявлений), а второй сегментированный элемент - для ордеров (таблица заказов). Каждый раз, когда пользователь выбирает сегментированный элемент, я воссоздать экземпляр NSFetchResultController с новой выборкой запроса в другую таблицу данных (но на пользовательском интерфейсе у меня всегда есть только один UITableView self.tableViewMain
):NSFetchedResultsController performFetch не работает
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
не вызывается). Итак, во второй раз новый экземпляр NSFetchResultController (который связан со второй таблицей в основных данных) ничего не делает, когда я звоню fetchedResultsController!.performFetch()