核心数据 - 获取对象属性的最后更新日期

时间:2015-04-02 16:53:03

标签: ios objective-c core-data

我正在研究项目的缓存功能。数据从服务器下载,然后作为具有特定属性的NSManagedObjects保存到Core Data存储。我想知道是否有办法知道对象属性的值的最后更新时间(我必须跟踪属性,而不是整个对象,因为它们可能会单独更新)。

例如,假设我有一个名为Report的对象,其中包含以下属性:

NSManagedObject Report:
- reportName;
- reportAssignee;
- reportInfo;
- reportId;

我想从服务器下载Report的数据,但我只选择reportName和reportId字段。所以我将收到的信息保存到对象中,这就是我们现在所拥有的:

NSManagedObject Report:
- reportName - MyReport;
- reportAssignee - not updated;
- reportInfo - not updated;
- reportId - fbbcc939393-sdfsjd49340.

我怎么知道属性reportName和reportId已于04-02-2015更新,而属性reportDate,reportAssignee,reportInfo还没有更新?

当然可以为对象中的每个属性创建具有上次更新日期的重复属性,但我希望有更好的方法。

1 个答案:

答案 0 :(得分:0)

嗯,我认为在这种情况下最好的选择是在对象中创建一个新属性:

NSManagedObject Report:
...
- (id) updateInfo;

并存储一个NSDictionary,其中key为object_property_name,value为此属性更新的日期。因此,如果我们从服务器下载Report对象的reportName属性并保存此数据 - 我们应该将值为“04-02-2015”的密钥NSStringFromSelector(reportName)添加到updateInfo属性中的字典。