【问题标题】:How to auto generate NSManagedObject subclasses with date attribute as Date instead of NSDate?如何自动生成日期属性为 Date 而不是 NSDate 的 NSManagedObject 子类?
【发布时间】:2017-04-12 17:24:50
【问题描述】:

我目前正在将我的项目更新到 Swift 3,并且我正在将我的所有 NSDate 方法和扩展移动到 Date 以保持应用程序中的标准。

问题是我使用 Xcode 自动生成我的 NSManagedObject 子类,它生成日期属性为 NSDate 而不是 Date。

有没有办法用日期属性生成它?

编辑

Apple Developer Documentation:

Core Data 原生支持多种属性类型,例如字符串、日期和整数(分别表示为 NSString、NSDate 和 NSNumber 的实例)。

所以我认为这是不可能的=/

【问题讨论】:

    标签: ios core-data swift3 nsdate nsmanagedobject


    【解决方案1】:

    目前还不可能,因为 Core Data 仍然与 Objective-C 类型密切相关,这是它展示的地方之一。

    但是,您仍然可以将 Date 分配给 NSDate 属性:

        newEvent.timestamp = Date() as NSDate
    

    这远非理想,但如果您有其他使用Date 的代码,则不必改为使用NSDate。仅在直接使用托管对象时使用 as 进行转换。

    【讨论】:

    • 感谢您的提示!现在,我在 NSManagedObject 子类中手动将 NSDate 属性更改为 Date 并且它可以正常工作。我只是想找到一种使用 Date 自动生成的方法。
    • Bruno:将 NSDate 更改为 Date 可能有效(我也在尝试),但这当然是模型更改。在核心数据模型上线后执行此操作需要迁移,否则加载数据将失败。在初始开发过程中是好的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 2014-11-27
    • 1970-01-01
    • 2016-11-12
    相关资源
    最近更新 更多