核心数据数据类型仅适用于日期 - 不包括时间

时间:2010-05-28 22:27:22

标签: iphone date core-data

我是Core Data的新手,看起来这是管理数据存储的好方法。然而,由于iPhone没有那么多,我也非常注重记忆。我有点惊讶地发现数据类型非常有限 - 例如。有一个日期类型,其中也包括时间,但没有日期类型的日期!所有时间信息占用了宝贵的内存字节,如果我只想要一个带日期的属性(例如2010年2月15日而不是2/15/2010 02:34:48),我怎么能这样做?有可能吗?

3 个答案:

答案 0 :(得分:3)

如果您确实认为这将是内存问题,请为基金会NSNumber类型NSTimeInterval存储double属性,其值来自NSDate方法衡量自纪元以来的秒数。

您将为性能损失交换内存,特别是如果您必须在时间间隔的对象表示和NSDate对象之间进行大量转换,但这是一个选项。

另一个是使用NSDate,看看你是否真的遇到内存问题。

我怀疑你不会。如果您执行Apple推荐的所有核心数据技巧,您将会出现数据错误等问题。这意味着您的应用程序将尽可能少地进行实际数据检索,直到应用程序确实需要数据为止。

答案 1 :(得分:1)

日期自数据库中的纪元以来存储为秒,并且没有没有小时的“日期”概念。但是,如果这种差异会影响你的内存消耗,我会非常非常,因为Core Data只是在数据库中存储了一个双倍。

日期绝不是记忆问题,它们根本不够大。

答案 2 :(得分:0)

为什么不直接将日期保存为字符串,然后使用NSDate格式化程序在需要使用时将其转换回来?