Swift:fetchedResultsController.getter:致命错误:意外地发现零,而解包可选值
问题描述:
我正在做一个聊天应用程序,但运行它时,它显示在fetchedResultsController.getter(闭包#1),有一个致命错误:意外地发现零,同时展开一个可选值。我再次检查它,但没有发现任何错误。你能帮我修好吗?Swift:fetchedResultsController.getter:致命错误:意外地发现零,而解包可选值
lazy var fetchedResultsController:NSFetchedResultsController = {
let fetchRequest = NSFetchRequest(entityName: "Friend")
fetchRequest.sortDescriptors = [NSSortDescriptor(key:"date", ascending: true)]
fetchRequest.predicate = NSPredicate(format: "friend.name = %@", self.friend!.name!)
let delegate = UIApplication.sharedApplication().delegate as!
AppDelegate
let context = delegate.managedObjectContext
let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
frc.delegate = self
return frc
}()
答
因为在你展开可选值的唯一地方是在这一行我猜self.friend为零,在这一点上。
fetchRequest.predicate = NSPredicate(format: "friend.name = %@", self.friend!.name!)
你应该弄清楚为什么
我认为,根本原因就在于我的NSPredicate的误解:当返回数组,当返回string.I应该挖掘更多的进入核心数据教程。 – Magenta
何时何地设置self.friend是我认为的关键问题,您可以分享该代码或解释如何完成 – dminones