我可以在当前的核心数据模型中输入和创建关系。我遇到的问题是尝试与现有属性建立关系。
我想我需要找到现有的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")
}
}
fatal error: unexpectedly found nil while unwrapping an Optional value
答案 0 :(得分:0)
您声明了一个隐式解包的可选
var visitEntityObject : NSManagedObject!
没有任何价值,然后继续使用它而不给它一个值。你可以在Obj-C中使用它,因为nil
周围的严格程度要低得多。这在Swift中是错误的 - 你应该再看看可选项并强制展开Swift指南以更好地理解错误