如果我的 API 没有给我 id
属性,但我仍然想通过 Core Data 缓存对象,我应该使用什么来识别我的对象。
例如我有
response = {
translation = {
text = "longlongtext";
dictionary = "general";
lang = "en";
};
otherdata = {
author = "May";
date = "434134";
};
}
所以我很乐意使用散列 (md5) 翻译文本作为 id 字符串。 请注意,我 future 在没有网络连接的情况下发生的请求应该能够识别这个缓存的实体并将其作为结果。
我无法声明映射以填充 [translation.text md5hash]
中的 responseID
属性以用作 responseMapping.identificationAttributes = @[ responseID ];
因为映射没有这样的功能。
@segiddins 在 github 问题讨论中提出:
... in your managed object subclass, hook into one of the core data callbacks to generate a compound key that is saved as part of the model and just use that key as your identification attribute.
方法可能如下所示:
@property (nonatomic, copy) NSString *identifier;
- (void)willSave
{
[super willSave];
NSString *computedIdentifier = [[NSString stringWithFormat"%@%@", self.text, self.langCode] md5hash];
[self setPrimitiveValue:computedIdentifier forKey"identifier"];
}
关于iOS RestKit 人工识别属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18874384/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |