如何在CoreData中存储DayOfWeek和Time?

时间:2011-04-06 07:10:55

标签: iphone objective-c ios core-data

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

  • 星期一凌晨4点05分
  • 周日晚上8点10分

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

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

1 个答案:

答案 0 :(得分:3)

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

  

可转换背后的理念   属性是您访问的   属性为非标准类型,但是   幕后核心数据使用了   NSValueTransformer的实例   将属性转换为和从   NSData的实例。核心数据然后   将数据实例存储到   持久存储。

NSDateComponent确实符合协议:)