我正在研究项目的缓存功能。数据从服务器下载,然后作为具有特定属性的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还没有更新?
当然可以为对象中的每个属性创建具有上次更新日期的重复属性,但我希望有更好的方法。
答案 0 :(得分:0)
嗯,我认为在这种情况下最好的选择是在对象中创建一个新属性:
NSManagedObject Report:
...
- (id) updateInfo;
并存储一个NSDictionary,其中key为object_property_name,value为此属性更新的日期。因此,如果我们从服务器下载Report对象的reportName属性并保存此数据 - 我们应该将值为“04-02-2015”的密钥NSStringFromSelector(reportName)添加到updateInfo属性中的字典。