gpt4 book ai didi

ios - 在 iOS 10 中,NSFetchedResultsController 的实例需要非零 fetchRequest 和 ManagedObject 上下文

转载 作者:行者123 更新时间:2023-11-30 13:02:15 24 4
gpt4 key购买 nike

当我在 iOS 9 中使用 Xcode 7.3 时,该代码运行良好,但当我使用 swift 3 迁移到 Xcode 8 时,下面的代码向我显示了运行时错误。仍在寻找解决方案

class TableViewController: UITableViewController,NSFetchedResultsControllerDelegate,UISearchResultsUpdating {
var fetchResultController :NSFetchedResultsController<Restaurant>!
var searchController : UISearchController!
var searchResults :[Restaurant] = []

override func viewDidLoad() {
super.viewDidLoad()

let fetchRequest : NSFetchRequest<NSFetchRequestResult> = Restaurant.fetchRequest()
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]

if let managedObjectContext = (UIApplication.shared.delegate as? AppDelegate)?.managedObjectContext{
fetchResultController = NSFetchedResultsController(fetchRequest: fetchRequest as! NSFetchRequest<Restaurant>, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)

fetchResultController.delegate = self

do{
try fetchResultController.performFetch()
restaurants = fetchResultController.fetchedObjects!
}
catch{
print(error)
}

}
}
}

最佳答案

从下面的代码中我可以看到,您正在获取一个 Restaurant 对象

var fetchResultController :NSFetchedResultsController<Restaurant>!
var searchController : UISearchController!
var searchResults :[Restaurant] = []

但是在 fetchRequest 中,您将其定义为 NSFetchRequestResult。

let fetchRequest : NSFetchRequest<NSFetchRequestResult>  = Restaurant.fetchRequest()

它可能是一个 NSFetchRequestResult 但我建议您直接将其转换为餐厅。我有一个类似的问题并且这样做有效。试试这个,看看是否有效。

let fetchRequest : NSFetchRequest<Restaurant>  = Restaurant.fetchRequest()

关于ios - 在 iOS 10 中,NSFetchedResultsController 的实例需要非零 fetchRequest 和 ManagedObject 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com