2

我正在使用带有 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

4

1 回答 1

0

查看使用KVC 验证RestKit 大量使用)来验证来自 RestKit 的传入数据,如果不合适则拒绝更新。这应该与在xcdatamodel.

于 2013-09-04T20:42:50.120 回答