2016-10-03 47 views
1

我正在将一个iOS应用程序从swift 2迁移到swift 3,我遇到这个我不明白的错误,我不知道该怎么去做。iOS 10 Xcode 8 - 迁移到Swift 3和日期

当我尝试读取名为dateApproved而不是dateCreated的属性时,会出现此问题。

print("dateApproved: \(cEntity.dateApproved)") 
print("dateCreated: \(cEntity.dateCreated)") 

实体类

@objc(entity) 
open class Entity: NSManagedObject { 

    ... 
    @NSManaged var dateApproved: Date 
    @NSManaged var dateCreated: Date 
    ... 

在检查属性cEntity我可以看到

dateApproved = nil; 
dateCreated = "2016-08-24 22:20:38 +0000"; 

这是错误

​​

截图

注:之前的工作,它只是不工作了,因为我在迁移所有的代码,使其符合斯威夫特3.

您能给我说说如何解决一些指针/跟踪此问题。非常感谢。

回答

1

实例变量dateApproved被声明为非可选变量,即Swift将假定它从不是。但是,如调试器所示,它是

因此,更改声明以符合实际并使其成为可选项。

@NSManaged var dateApproved: Date? 
+0

确实是这个问题。谢谢 – TheEwook

相关问题