2016-10-03 45 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

相關問題