【问题标题】:Xcode don't believe, think that I assign property with value of wrong type wrong typeXcode 不相信,认为我分配的属性值是错误类型的错误类型
【发布时间】: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’的值?输入“日期?””

【问题讨论】:

    标签: swift xcode core-data


    【解决方案1】:

    如果您使用 xcode 10 和 swift 5,那么它应该是 Date 而不是 NSDate

    你不应该自己创建Car+CoreDataClass.swift,你可以让xcode为你生成它们

    【讨论】:

      猜你喜欢
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      • 1970-01-01
      • 2020-09-24
      相关资源
      最近更新 更多