RestKit .20 with CoreData - 如何设置默认值
Posted
技术标签:
【中文标题】RestKit .20 with CoreData - 如何设置默认值【英文标题】:RestKit .20 with CoreData - How to set default values 【发布时间】:2013-09-04 00:47:48 【问题描述】:我正在使用带有 CoreData 的 RestKit .20。我让 RestKit 成功调用 JSON API 并将响应存储到 CoreData 模型,没有任何问题。
我的问题是如何在映射时设置不在响应中的默认值?
在我的情况下,我正在将警报列表下载到警报收件箱。我需要显示在本地设备上读取了哪些警报。我在实体模型上有一个名为 AlertRead (boolean) 的 CoreData 属性,当用户将 Alert 标记为 1=read 时,我会更新该属性。
我的问题是如何在检索和映射数据时将属性的默认值设置为 0=unread。
我尝试在 xcdatamodeld 文件中设置默认值,但没有成功。看来 RestKit 在映射时将值设置为 Nil。
澄清一点..我不认为我想通过将属性映射到 api 上的值来设置此属性,因为数据的刷新会覆盖本地数据库上的当前数据。
当前的映射代码。
RKEntityMapping* alertMapping = [RKEntityMapping mappingForEntityForName:@"AlertMessage" inManagedObjectStore:_managedObjectStore];
[alertMapping addAttributeMappingsFromDictionary:@
@"alertSubject": @"subject",
@"alertDetailMessage": @"detailMessage",
@"id": @"alertId",
];
感谢您的任何建议。 G
【问题讨论】:
【参考方案1】:看看使用KVC validation(RestKit utilises heavily)来验证来自 RestKit 的传入数据,如果不合适则拒绝更新。这应该与xcdatamodel
中设置的默认值结合使用。
【讨论】:
以上是关于RestKit .20 with CoreData - 如何设置默认值的主要内容,如果未能解决你的问题,请参考以下文章
RestKit CoreData 0.20.3 - 映射完成后保存 MOC 之前的额外检查
RestKit 0.20 with Core Data:删除对象