CoreData不为Swift 3生成NSManagedObject

时间:2017-05-09 10:17:18

标签: ios xcode core-data swift3 codegen

CoreData代码生成不会为NSManagedObject生成swift3个子类,例如:它会创建NSDate个属性而不是Date。知道如何为Swift3生成模型?

注意: - 我在CoreData代码生成设置中未找到任何内容,无法将语言明确切换为Swift 3,但我们可以生成Swift模型。但是有一些类已在Swift 3中更新。

1 个答案:

答案 0 :(得分:1)

许多属性类型仍然使用NSObject的子类。您很可能需要手动转换它们。

对于NSDate,您可以使用:

return (date as NSDate?) ?? nil

return (date as Date?) ?? nil

为了便于使用,您可以在DateNSDate上创建扩展,以便按照您希望的方式返回类型转换值。另一种方法是将数据库中的日期字段更改为rawDate,然后创建一个覆盖setter和getter的属性date,并进行原始属性rawDate的转换。

在任何情况下,Swift 3中都没有排除这些对象,它们在大多数API中都被更新的类型替换。