我正在使用带有 CoreData 的 RestKit .20。我让 RestKit 成功调用 JSON API 并将响应存储到 CoreData 模型,没有任何问题。
我的问题是如何在映射时设置不在响应中的默认值?
在我的情况下,我正在将警报列表下载到警报收件箱。我需要显示在本地设备上读取了哪些警报。我在实体模型上有一个名为 AlertRead(布尔值)的 CoreData 属性,当用户将警报标记为 1=read 时,我会更新该属性。
我的问题是如何在检索和映射数据时将属性的默认值设置为 0=unread。
我试图在 xcdatamodeld 文件中设置默认值,但这不起作用。看来 RestKit 在映射时将值设置为 Nil。
澄清一点..我不认为我想通过将属性映射到 api 上的值来设置此属性,因为数据的刷新会覆盖本地数据库上的当前数据。
当前的映射代码。
RKEntityMapping* alertMapping = [RKEntityMapping mappingForEntityForName:@"AlertMessage" inManagedObjectStore:_managedObjectStore];
[alertMapping addAttributeMappingsFromDictionary:@{
@"alertSubject": @"subject",
@"alertDetailMessage": @"detailMessage",
@"id": @"alertId",
}];
感谢您的任何建议。G