0

「タイムスタンプ」の属性を含むコア データへの Restkit マッピングを実装しました。私のローカル データ モデルは、JSON のタイムスタンプを使用して入力する必要がある「日」、「月」、および「年」の整数属性をサポートしています。どこでどのようにこれを行うのかわかりません。

私のマッピング:

RKEntityMapping *mediaMapping = [[VSObjectStore shared] mappingForEntityForName:@"Media"];
    [mediaMapping setIdentificationAttributes:@[@"id"]];

    // Remove any relationships
    NSMutableArray *mediaMethods = [NSMutableArray arrayWithArray:[_VSMedia propertyNames]];
    [mediaMapping addAttributeMappingsFromArray:mediaMethods];

よろしくお願いします。

4

2 に答える 2

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];
于 2013-10-24T06:26:03.670 に答える
1

データ モデル (または少なくともアプローチ) を変更する必要があります。モデルにNSDateインスタンスを保存します。これは、最も正確で十分にサポートされている選択肢です。その後、マッピングが自動的に行われます。日、月、年の 3 つのプロパティが必要な場合は問題ありませんが、それらを派生 (一時的) にして、必要なときに (またはフェッチ/保存時に)NSDateタイムスタンプから取得します。

于 2013-10-24T11:50:18.317 に答える