RestKit + CoreData:从CoreData缓存中排除某些对象
Posted
技术标签:
【中文标题】RestKit + CoreData:从CoreData缓存中排除某些对象【英文标题】:RestKit + CoreData: Exclude certain Objects from CoreData caching 【发布时间】:2013-09-27 14:17:53 【问题描述】:我目前尝试实现 RestKit CoreData 扩展以将对象缓存到我的设备。问题是我显然不能排除在代码中链接的某些对象。
我举个例子:
我的对象消息:
@interface Message : NSManagedObject
@property (nonatomic, copy) NSString *uuid;
@property (nonatomic, copy) NSString *text;
@property (nonatomic, copy) User *user;
@end
我希望消息被缓存,但是当数据来自服务器时,用户对象应该只是在那个对象中。
但是我得到了这个错误:
[<NSManagedObject 0xeaa1290> valueForUndefinedKey:]: the entity Message is not key value coding-compliant for the key "user".'
有什么办法可以解决这个问题吗?
【问题讨论】:
你从服务器得到什么数据?这个错误是在映射期间?你的映射是什么?User
是托管对象吗?您是否需要将 user
从服务器的响应中映射出来,或者您真的不需要它。
好的一个一个:) 只是为了澄清。 1. 数据是 JSON 2. 映射在没有 Core Data 的情况下工作得很好。 3. 只需将键从 JSON 映射到对象。 4. 我不希望 User 成为 managedObject。但是我仍然希望用户成为消息类的属性。 5. 我想把它从响应中映射出来。如果客户端在线,我只需要用户它。否则,信息是不必要的。感谢您的帮助。仍然无法弄清楚,RestKit 文档并没有真正的帮助。
您确实需要为您的问题添加详细信息。显示您的用户和映射代码。可能也是您的核心数据模型的图像。否则没有人能猜到出了什么问题。
【参考方案1】:
我发现了问题。我忘记在我的 momd 文件中将我的 NSManagedObject 的类设置为 Message,因此它找不到数据模型中未定义的属性。
【讨论】:
以上是关于RestKit + CoreData:从CoreData缓存中排除某些对象的主要内容,如果未能解决你的问题,请参考以下文章
在 RestKit 中使用 RKObjectManager 从 CoreData 获取
CoreData & RestKit - 从多个来源获取相同的实体类型
无法让 Restkit 0.20 + CoreData 工作
CoreData+RESTKit:来自 NSFetchedResultsController 的同一对象的多个副本