2016-05-16 4 views
1

をアンラップしながら、nilを見つけ、それを実行するとき、それはfetchedResultsController.getter(閉鎖#1)には、致命的なエラーがあることを示しました:オプション値をアンラッピングしている間に予期せずnilが見つかりました。私はそれを二重にチェックしたが、何も間違っていなかった。私はそれを修正する手助けできますか?スウィフト: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 
}() 

答えて

1

オプションの値をアンラップしているところで唯一の場所は、私はself.friendは、この時点ではゼロであることを推測している。このラインであるので。

fetchRequest.predicate = NSPredicate(format: "friend.name = %@", self.friend!.name!) 

私は根本理由はNSPredicateの私の誤解であると考える理由

+0

あなたは把握すべきである:配列を返すとき、string.Iは、コアデータチュートリアルにもっと掘る必要があります返すようにする場合。 – Magenta

+0

どこにself.friendが設定されているかは、私が思いついた重要な質問です。あなたはそのコードを共有したり、これがどのように行われているか説明することができます – dminones

関連する問題