【问题标题】:iOS 10 Xcode 8 - migration to Swift 3 and DateiOS 10 Xcode 8 - 迁移到 Swift 3 和 Date
【发布时间】:2016-10-03 09:57:54
【问题描述】:

我正在将一个 iOS 应用程序从 swift 2 迁移到 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";

这是错误截图

注意:它以前工作过,现在它不再工作了,因为我迁移了所有代码以使其与 Swift 3 兼容。

您能否给我一些关于如何解决/跟踪此问题的指示。非常感谢。

【问题讨论】:

    标签: ios swift exception swift3


    【解决方案1】:

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

    因此,更改声明以符合实际情况并使其可选。

    @NSManaged var dateApproved: Date?
    

    【讨论】:

    • 确实是问题所在。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多