我正在使用RestKit .20和CoreData。我有RestKit成功调用JSON API并将响应存储到CoreData模型而没有任何问题。
我的问题是如何在映射时设置默认值而不是响应?
在我的情况下,我正在将警报列表下载到警报收件箱。我需要显示本地设备上已读取的警报。我在实体模型上有一个名为AlertRead(boolean)的CoreData属性,当用户将Alert标记为1 = read时,我会更新该属性。
我的问题是如何在检索和映射数据时将属性的默认值设置为0 =未读。
我尝试在xcdatamodeld文件中设置默认值,但这不起作用。似乎RestKit在映射时将值设置为Nil。
一点澄清..我不认为我想通过将属性映射到api上的值来设置此属性,因为刷新数据会覆盖本地数据库上的当前数据。
当前的映射代码。
RKEntityMapping* alertMapping = [RKEntityMapping mappingForEntityForName:@"AlertMessage" inManagedObjectStore:_managedObjectStore];
[alertMapping addAttributeMappingsFromDictionary:@{
@"alertSubject": @"subject",
@"alertDetailMessage": @"detailMessage",
@"id": @"alertId",
}];
感谢您的任何建议。 ģ
答案 0 :(得分:0)
使用KVC validation(RestKit utilises heavily)来验证来自RestKit的传入数据并拒绝更新(如果不合适)。这应与xcdatamodel
中设置的默认值一起使用。