维护新核心数据输入崩溃-swift中的关系

维护新核心数据输入崩溃-swift中的关系,swift,core-data,Swift,Core Data,我可以在当前的核心数据模型中输入和创建关系。我遇到的问题是试图创建与现有属性的关系 我想我需要找到现有的NSManagedObject,看看它是0(空)还是>0(已经存在) 我正在这样做,但在尝试创建NSManagedObject的全局引用时,我遇到了一个糟糕的访问崩溃(我认为是由于我的选项),因此我可以在创建关系时将其传递给下一行。我做错了什么?这是我以前在Obj-C中处理它的方式 var visitEntityObject : NSManagedObject! var Visit

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

我想我需要找到现有的
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")

                        }
                    }


声明隐式展开的可选

var visitEntityObject:NSManagedObject


没有值,然后继续使用它,而不给它一个值。在Obj-C中,您可以不受此限制,因为它在
nil
周围的要求要低得多。这在Swift中是错误的-您可能应该在Swift指南中再次查看optionals和强制展开,以便更好地了解错误所在

如果您标记碰撞发生的线并添加完整碰撞信息,将会有所帮助。我已标记碰撞线。这是一个错误的访问错误。请添加完整的错误消息。上面已更新,谢谢。处理此核心数据问题时,我的逻辑是否正确?我知道这是问题所在,但我无法找到如何在不插入值的情况下声明NSManagedObject。您需要创建并插入新的托管对象或获取一个托管对象。无论哪种方式,你都不应该隐式地展开你应该正确地处理
nil
是的,我试图克服的问题是使获取的NSManagedObject可访问,因此我尝试创建一个全局变量。我会将其标记为正确的-只是无助于解决我的问题(我认为我解释得很糟糕)
fatal error: unexpectedly found nil while unwrapping an Optional value