2016-10-03 4 views
1

Я в процессе миграции приложение iOS от Swift 2 до быстрого 3, и я сталкиваюсь с этой ошибкой, которую я не понимаю, и я не уверен, что делать.iOS 10 Xcode 8 - переход на Swift 3 и Date

Проблема возникает, когда я пытаюсь прочитать свойство под названием dateApproved, но не для dateCreated.

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

Entity Класс

@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"; 

Это скриншот ошибки

enter image description here

Примечание: она работала раньше, она просто больше не работает, так как я мигрировал весь код, чтобы сделать его совместимым с Swift 3.

Не могли бы вы дать мне несколько советов о том, как решить/отслеживать этот вопрос. Очень ценится.

ответ

1

Переменная экземпляра dateApproved объявлена ​​как необязательная переменная, то есть Swift будет считать, что это никогда не nil. Однако, как показывает отладчик, это nil.

Для этого измените декларацию на соответствие реальности и сделайте ее необязательной.

@NSManaged var dateApproved: Date? 
+0

Это действительно была проблема. благодаря – TheEwook

Смежные вопросы