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 的同一对象的多个副本

Restkit 删除 coredata 中特定对象的所有对象

RestKit / Core Data:远程删除的实体不会从 Core Data 中删除