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!) 

你应该弄清楚为什么

+0

我认为,根本原因就在于我的NSPredicate的误解:当返回数组,当返回string.I应该挖掘更多的进入核心数据教程。 – Magenta

+0

何时何地设置self.friend是我认为的关键问题,您可以分享该代码或解释如何完成 – dminones