0

Dropboxで使用されているのと同様のパターンに従うフォルダー構造をマップする必要があります。ユーザーがツリーを上に移動すると、RESTサーバーは追加のJSONデータを返します。これは、Restkitを使用してCoreDataにマッピングする必要があります。私のJSONは次のとおりです。

{
    "object_id": "19BEB55D78EA431EA555CA7ADD72DCA6",
    "class": "sfaccount",
    "files": [
        {
            "file_id": "78234782437892438792487942",
            "bytes": 0,
            "created": "2012-11-12T03:42:55.0000000",
            "modified": "2012-11-12T03:42:55.0000000",
            "path": "/",
            "is_dir": true,
            "contents": [
                {
                    "file_id": "980234890234890234980234890",
                    "name": "file1.xls",
                    "created": "2012-11-12T03: 42: 55.0000000",
                    "modified": "2012-11-12T03: 42: 55.0000000",
                    "path": "/file1.xls",
                    "is_dir": false,
                    "mime_type": "text/xls",
                    "bytes": 78810
                },
                {
                    "file_id": "924384238903429802439802890",
                    "name": "file2.pdf",
                    "created": "2012-11-12T03: 42: 55.0000000",
                    "modified": "2012-11-12T03: 42: 55.0000000",
                    "path": "/file2.pdf",
                    "is_dir": false,
                    "mime_type": "text/pdf",
                    "bytes": 15350
                },
                {
                    "file_id": "980349082498024390832490249",
                    "name": "sub folder 1",
                    "created": "2012-11-12T03: 42: 55.0000000",
                    "modified": "2012-11-12T03: 42: 55.0000000",
                    "path": "/sub folder 1",
                    "is_dir": true,
                    "bytes": 0
                }
            ]
        }
    ]
};

ユーザーが「サブフォルダー1」まで移動した場合、JSONは次のようになります。

{
    "object_id": "19BEB55D78EA431EA555CA7ADD72DCA6",
    "class": "sfaccount",
    "files": [
        {
           "file_id": "980349082498024390832490249",
           "name": "sub folder 1",
           "created": "2012-11-12T03: 42: 55.0000000",
           "modified": "2012-11-12T03: 42: 55.0000000",
           "path": "/sub folder 1",
           "is_dir": true,
           "bytes": 0,
            "contents": [
                {
                    "file_id": "564765785685856856658567575",
                    "name": "file1.xls",
                    "created": "2012-11-12T03: 42: 55.0000000",
                    "modified": "2012-11-12T03: 42: 55.0000000",
                    "path": "/sub folder 1/file1.xls",
                    "is_dir": false,
                    "mime_type": "text/xls",
                    "bytes": 78810
                },
                {
                    "file_id": "345687656675856790676786789",
                    "name": "file2.pdf",
                    "created": "2012-11-12T03: 42: 55.0000000",
                    "modified": "2012-11-12T03: 42: 55.0000000",
                    "path": "/sub folder 1/file2.pdf",
                    "is_dir": false,
                    "mime_type": "text/pdf",
                    "bytes": 15350
                },
                {
                    "file_id": "434546785689689667679988698",
                    "name": "sub folder 2",
                    "created": "2012-11-12T03: 42: 55.0000000",
                    "modified": "2012-11-12T03: 42: 55.0000000",
                    "path": "/sub folder 1/sub folder 2",
                    "is_dir": true,
                    "bytes": 0
                }
            ]
        }
    ]
}

モデルの構造と、Restkitを使用してマッピングを作成する方法がわかりません。

4

1 に答える 1

0

これは、そのJSONオブジェクトをマッピングするために使用するオブジェクトマッピングです。FileObjectクラスの「contents」プロパティはNSArrayである必要があり、FileObjectの配列が入力されます。

RKObjectMapping *fileMapping = [RKObjectMapping mappingForClass:[FileObject class]];

[fileMapping addAttributeMappingsFromArray:@[@"file_id",@"bytes",@"created",@"modified",@"path",@"is_dir"]];
RKRelationshipMapping *subFileMapping = [RKRelationshipMapping relationshipMappingFromKeyPath:@"contents" toKeyPath:@"contents" withMapping:fileMapping];

[fileMapping addPropertyMapping:subFileMapping];
于 2013-01-30T03:19:00.880 に答える