【发布时间】:2019-11-07 07:20:36
【问题描述】:
我在我的 IOS 应用程序中通过CoreData framework 创建了实体 Car。
我在文件Car+CoreDataClass.swift 中写下了我的班级汽车的定义
然后,我在文件Car+CoreDataProperties.swiftNSDate 类型的文件Car+CoreDataProperties.swiftProperty“lastStarted”中为此类编写了扩展属性,NSDate 就是其中之一。
但是当尝试为 class Car 的对象的属性 lastStarted 设置新值时,Xcode 说这个属性是 Date 类型而不是 NSDate。
我不明白他为什么认为 lastStarted 是 Date 类型,因为它在 Car+CoreDataProperties.swift 中被声明为 NSDate。
//代码来自扩展
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’的值?输入“日期?””
【问题讨论】: