-2

私は自分の iOS プロジェクトで RestKit を使用していますが、重要な問題を見つけて解決策を見つけることができません。

私はjsonを持っています:

[{
    "name": "restkit", 
    "downloads": 2
},
{
    "name": "restkit", 
    "rating": 10.0
}]

およびデータ モデル: Model.h

@interface Model : NSObject
    @property (nonatomic, strong) NSString * name;
    @property (nonatomic, strong) NSString * key;
    @property (nonatomic, strong) NSString * value;
@end

これらの JSON オブジェクトは 1 つの配列に読み込まれ、属性の 1 つは「動的」属性です。RestKit でマッピングを実行した後、2 つのレコードを保持できるようにしたいと考えています。

name: "restkit", key: "downloads", value: 2
name: "restkit", key: "rating", value: 10.0

質問: 上記の例に示すように、最初に JSON を 2 つの NSObject にマップする方法を教えてください。

これは、RestKit を使用してマッピングを初期化し、リクエストを発行する方法です。

// during app initialization I setup mappings:

RKObjectMapping *modelMapping = [RKObjectMapping mappingForClass:[Model class]];
[metricDataMapping mapKeyPath:@"name" toAttribute:@"name"];

...... -- something should go here to support that dynamic stuff

[[RKObjectManager sharedManager].mappingProvider addObjectMapping:metricDataMapping];

// in the view controller when loading data
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:url usingBlock:^(RKObjectLoader *loader){
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass: [MetricData class]];

    loader.onDidLoadObjects = ^(NSArray * objects){
        self.dataArray = objects;
    };
}];

問題は、キー「ダウンロード」と「評価」が動的であり、任意の単語である可能性があることです。その「オンザフライ」を解析して UI に表示する必要があります。Restkit はこのような動作をサポートしていますが、ネストされた辞書に対してのみです。

4

2 に答える 2

0

RestKitによってトリガーされたモデルでキー値検証を使用して、正しいメトリックキーと値を必要な汎用キーに設定しました。

于 2012-08-09T07:29:52.080 に答える