Xcode не верю, думаю, что я назначаю свойство со значением неправильного типа неправильного типа - PullRequest
0 голосов
/ 25 июня 2019

Я создал сущность Car с помощью CoreData framework в своем приложении IOS. Я написал определение моего класса автомобиля в файле Car+CoreDataClass.swift Затем я написал свойства в расширении для этого класса в файле Car+CoreDataProperties.swift Свойство "lastStarted" типа NSDate является одним из них. Но когда попытался установить новое значение для свойства lastStarted объекта class Car, Xcode сказал, что это свойство типа Date, а не NSDate. Я не понимаю, почему он думает, что lastStarted имеет тип Date, потому что он был объявлен как NSDate в Car+CoreDataProperties.swift.

// Код из расширения

extension Car {

@nonobjc public class func fetchRequest() -> NSFetchRequest<Car> {
    return NSFetchRequest<Car>(entityName: "Car");
}

@NSManaged public var imageData: NSData?
@NSManaged public var lastStarted: NSDate?
@NSManaged public var mark: String?
@NSManaged public var model: String?
@NSManaged public var myChoice: NSNumber?
@NSManaged public var rating: NSNumber?
@NSManaged public var timesDriven: NSNumber?
@NSManaged public var tintColor: NSObject?
}

// Назначение значений

        car.mark = carDictionary["mark"] as? String
        car.model = carDictionary["model"] as? String
        car.myChoice = carDictionary["myChoice"] as? NSNumber
        car.rating = carDictionary["rating"] as? NSNumber
        car.timesDriven = carDictionary["timesDriven"] as? NSNumber
        car.lastStarted = carDictionary["lastStarted"] as? NSDate //here Xcode says 

"Невозможно присвоить значение типа 'NSDate?' набрать "Дата?" "

1 Ответ

0 голосов
/ 25 июня 2019

Если вы используете xcode 10 с swift 5, тогда он должен быть Date, а не NSDate.

Вы не должны создавать Car+CoreDataClass.swift самостоятельно, вы можете получить xcode, чтобы сгенерировать их для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...