我已经将Restkit映射实现为包含'timestamp'属性的核心数据。我的本地数据模型支持使用JSON时间戳填充的'day','month'和'year'整数属性。我不知道在哪里以及如何做到这一点。
我的映射:
RKEntityMapping *mediaMapping = [[VSObjectStore shared] mappingForEntityForName:@"Media"];
[mediaMapping setIdentificationAttributes:@[@"id"]];
// Remove any relationships
NSMutableArray *mediaMethods = [NSMutableArray arrayWithArray:[_VSMedia propertyNames]];
[mediaMapping addAttributeMappingsFromArray:mediaMethods];
提前感谢您的帮助!
答案 0 :(得分:1)
您应该实施RKObjectLoaderDelegate
以下方法:
- (void)objectLoader:(RKObjectLoader*)loader willMapData:(inout id *)mappableData;
在解析数据之后但在映射之前调用此方法。因此,您可以修改数据以添加日,月和年。
代码看起来像这样:
- (void)objectLoader:(RKObjectLoader *)loader willMapData:(inout id *)mappableData
{
NSMutableDictionary *mediaData = *mappableData;
// parse timestamp here
[mediaData setObject:day forKey:@"day"];
}
并将密钥添加到映射列表中:
NSMutableArray *mediaMethods = [NSMutableArray arrayWithArray:[_VSMedia propertyNames]];
[mediaMethods addObject:@"day"]
[mediaMapping addAttributeMappingsFromArray:mediaMethods];
答案 1 :(得分:1)
您应该更改数据模型(或至少是您的方法)。在您的模型中存储NSDate
实例 - 这是最准确,最受支持的选择。然后映射应该自动发生。如果您仍然需要3天,月和年的属性,那么很好,但要将它们派生(瞬态)并在NSDate
时间戳需要时(或获取/保存)获取它们。