【问题标题】:how can I store DayOfWeek and a Time in CoreData?如何在 CoreData 中存储 DayOfWeek 和时间?
【发布时间】:2011-04-06 15:24:18
【问题描述】:

如何才能最好地在核心数据中存储星期几和时间?例如:

  • 星期一凌晨 4.05
  • 星期三晚上 8 点 10 分

我可以在 Objective-C 中使用 NSDateComponents 来表示这个,但是这个类型没有在核心数据属性类型下拉列表中列出。就此而言,这些在 Objective-C 或核心数据中似乎都不是 NSTime 类型。想到的选项:

  • 存储为字符串,然后必须解析(例如“Mon 5.00pm”),但这听起来并不理想
  • 存储为 (a) NSInteger 表示星期几,(b) NSDate 表示时间,以后访问时只使用时间部分?
  • 其他更好的想法?

【问题讨论】:

    标签: iphone objective-c ios core-data


    【解决方案1】:

    如果代表您的数据的类符合 NSCoding 协议,您可以使用Transformable Attributes。苹果章节Non-Standard Persistent Attributes pf Core Data Programming Guide的简短引用:

    可变形背后的理念 属性是你访问一个 属性作为非标准类型,但是 在幕后,Core Data 使用了 NSValueTransformer 的实例到 将属性转换为 NSData 的实例。核心数据然后 将数据实例存储到 持久存储。

    NSDateComponent 确实符合协议 :)

    【讨论】:

    • 顺便说一句 - 效果很好 - 除了我确实发现我也必须设置年份,否则在访问星期几时我会得到奇怪的结果(几乎看起来像一个错误)跨度>
    • 您是否将数据保存为 NSDateComponents?
    猜你喜欢
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多