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



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

例如,假设我有一个名为Report的对象,它具有以下属性:

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

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

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

我怎么知道属性reportName和reportId在2015年4月2日更新,而属性reportDate、reportAssignee和reportInfo根本没有更新?

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

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

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

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

最新更新