维持新核心数据录入崩溃的关系 - 迅捷

时间:2015-07-13 14:41:41

标签: swift core-data

我可以在当前的核心数据模型中输入和创建关系。我遇到的问题是尝试与现有属性建立关系。

我想我需要找到现有的NSManagedObject,看看它是0(空)还是> 0(已存在)。

我正在这样做,但是在尝试创建对NSManagedObject的全局引用时,我得到了一个糟糕的访问崩溃(我认为由于我的选项),因此我可以在创建关系时将其传递给该行。我究竟做错了什么?这是我之前在Obj-C中找到它的方式。

   var visitEntityObject : NSManagedObject!
   var VisitsEntity = visitEntityObject as! VisitDetails //Crash

                    var resultsVisit:NSArray? = self.managedObjectContext!.executeFetchRequest(requestVisit, error: errorVisit)

                    if errorVisit != nil
                    {
                        println("Error: \(errorVisit.debugDescription)")
                    }
                    else
                    {
                        if resultsVisit?.count == 0
                        {

                            VisitsEntity = NSEntityDescription.insertNewObjectForEntityForName(visitEntityName, inManagedObjectContext: self.managedObjectContext!) as! VisitDetails

                            visitFound = false
                            println("Visit Not Found")
                        }
                        else
                        {

                            VisitsEntity = resultsVisit?.lastObject as! VisitDetails

                            visitFound = true
                            println("Visit Found")

                        }
                    }

enter image description here

fatal error: unexpectedly found nil while unwrapping an Optional value

1 个答案:

答案 0 :(得分:0)

您声明了一个隐式解包的可选

var visitEntityObject : NSManagedObject!

没有任何价值,然后继续使用它而不给它一个值。你可以在Obj-C中使用它,因为nil周围的严格程度要低得多。这在Swift中是错误的 - 你应该再看看可选项并强制展开Swift指南以更好地理解错误