使用 FetchedResultController 通过 NSSet 获取实体时发生致命错误
我的项目中有 2 个实体:
Product: NSObject {
@NSManaged public var title: String?
}
ShoppingCart: NSObject {
@NSManaged public var products: NSSet?
}
我想订阅其中一个 ViewController 上的 ShoppingCart 更新并更新其中的 tableView。
我找到了可以通过使用 NSFetchedResultsControllerDelegate 来完成此操作的解决方案,但是在配置它时,我遇到了致命错误 “这里不允许对多密钥”
if fetchedResultsController == nil {
let request = NSFetchRequest<ShoppingCart>(entityName: "ShoppingCart")
let sort = NSSortDescriptor(key: "products", ascending: false)
request.sortDescriptors = [sort]
fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: CoreDataService.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
fetchedResultsController.delegate = self
}
do {
try fetchedResultsController.performFetch()
tableView.reloadData()
} catch {
print("failed fetch")
}
我被困在这个任务上 3 天或所以,请帮我一下
I have 2 Entities in my Project:
Product: NSObject {
@NSManaged public var title: String?
}
ShoppingCart: NSObject {
@NSManaged public var products: NSSet?
}
I want to subscribe to ShoppingCart updates on one of my ViewControllers and update the tableView inside.
I found the solution that I can do it by using NSFetchedResultsControllerDelegate, but while configuring it I'm getting fatal error "to-many key not allowed here"
if fetchedResultsController == nil {
let request = NSFetchRequest<ShoppingCart>(entityName: "ShoppingCart")
let sort = NSSortDescriptor(key: "products", ascending: false)
request.sortDescriptors = [sort]
fetchedResultsController = NSFetchedResultsController(fetchRequest: request, managedObjectContext: CoreDataService.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
fetchedResultsController.delegate = self
}
do {
try fetchedResultsController.performFetch()
tableView.reloadData()
} catch {
print("failed fetch")
}
I'm stuck on this task like 3 days or so, give me a hand please
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论