我是Core Data的新手,看起来这是管理数据存储的好方法。然而,由于iPhone没有那么多,我也非常注重记忆。我有点惊讶地发现数据类型非常有限 - 例如。有一个日期类型,其中也包括时间,但没有日期类型的日期!所有时间信息占用了宝贵的内存字节,如果我只想要一个带日期的属性(例如2010年2月15日而不是2/15/2010 02:34:48),我怎么能这样做?有可能吗?
答案 0 :(得分:3)
如果您确实认为这将是内存问题,请为基金会NSNumber
类型NSTimeInterval
存储double
属性,其值来自NSDate
方法衡量自纪元以来的秒数。
您将为性能损失交换内存,特别是如果您必须在时间间隔的对象表示和NSDate
对象之间进行大量转换,但这是一个选项。
另一个是使用NSDate
,看看你是否真的遇到内存问题。
我怀疑你不会。如果您执行Apple推荐的所有核心数据技巧,您将会出现数据错误等问题。这意味着您的应用程序将尽可能少地进行实际数据检索,直到应用程序确实需要数据为止。
答案 1 :(得分:1)
日期自数据库中的纪元以来存储为秒,并且没有没有小时的“日期”概念。但是,如果这种差异会影响你的内存消耗,我会非常非常,因为Core Data只是在数据库中存储了一个双倍。
日期绝不是记忆问题,它们根本不够大。
答案 2 :(得分:0)
为什么不直接将日期保存为字符串,然后使用NSDate格式化程序在需要使用时将其转换回来?