Majid99 Ответов: 1

Экземпляр nsfetchedresultscontroller требует ненулевого контекста fetchrequest и managedobject в iOS 10



Код хорошо работал, когда я использовал Xcode 7.3 с iOS 9, но когда я перешел на Xcode 8 с помощью swift 3, приведенный ниже код показал мне эту ошибку во время выполнения.

класс TableViewController: UITableViewController, NSFetchedResultsControllerDelegate,UISearchResultsUpdating {

var fetchResultController :NSFetchedResultsController & lt;ресторан>!

var searchController : UISearchController!

var searchResults :[ресторан] = []

переопределение функции viewDidLoad() {
super. viewDidLoad()



пусть fetchRequest : NSFetchRequest< NSFetchRequestResult> = Restaurant.fetchRequest()
пусть sortDescriptor = NSSortDescriptor(ключ: "name", по возрастанию: true)
fetchRequest.sortDescriptors = [sortDescriptor]




если let managedObjectContext = (UIApplication. shared.делегировать как? AppDelegate)?.managedObjectContext{



fetchResultController = NSFetchedResultsController(fetchRequest: fetchRequest as! NSFetchRequest&ЛТ;ресторан&ГТ;, managedObjectContext: managedObjectContext, sectionNameKeyPath: Нил службу cacheName: Нил)

fetchResultController.делегат = собственн

делать{
попробовать fetchResultController.performFetch()
рестораны = fetchResultController. fetchedObjects!
}
ловить{
печать (ошибка)
}

}
}

Что я уже пробовал:

Я перепробовал так много ресурсов , таких как официальная документация, форумы разработчиков, а также просматривал их в интернете, но ничего не нашел

1 Ответов

Рейтинг:
1

Surya_Narayan

Такое ощущение, что контекст задан неправильно .

Пожалуйста, попробуйте

let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistenceContainer.viewContext