RestKit 加载对象

Posted

技术标签:

【中文标题】RestKit 加载对象【英文标题】:RestKit loadObjects 【发布时间】:2012-11-21 12:20:19 【问题描述】:

我正在使用restKit,从服务器发送和接收数据...我正在返回


    "request":"globalUpdate",
    "updateRevision":2,
    "updatedObjects":
        "users":[
            
                id:"someid1",
                name:"somename"
            ,
            
                id:"someid2",
                name:"somename2",
            
        ]
    

我想用

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:nil usingBlock:^(RKObjectLoader * loader))];

仅将updatedObjects 中的对象加载到CoreData 中,将requestupdateRevision 加载到NSDictionary 中

所以在

loader.onDidLoadObjects = ^(NSArray *objects)     


第一个对象是 Dictionary,后一个是 CoreData

【问题讨论】:

【参考方案1】:

这取决于您选择将哪个对象用于核心数据以及哪个对象用于您自己的目的。 RKObjectLoader 还提供了 onDidLoadResponse 块,它引用了您可以自己使用的响应。

[myobjectManager loadObjectsAtResourcePath:resourcePath usingBlock:^(RKObjectLoader *loader) 
        loader.mappingProvider = [RKObjectMappingProvider mappingProviderUsingBlock:^(RKObjectMappingProvider *provider) 
            [provider setObjectMapping:[MyClass mapping] forKeyPath:@"updatedObjects"];
            loader.onDidLoadObjects = ^(NSArray *objects)

            ;
            loader.onDidLoadResponse = ^(RKResponse *response)
               // NSData * data  = [response data];
                id object = [response parsedBody:nil];
               // now parse the data yourself which will give you
               // the entire json in NSData for and parse it,
               // extract the component you need
            ;
            loader.onDidFailWithError = ^(NSError *error)

            ;
        ];
    ];

【讨论】:

以上是关于RestKit 加载对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 RestKit 加载多个不相关的对象?

RestKit 到 Core Data 的映射和加载零对象。 RKManagedObjectLoader

iOS:RestKit 加载对象和发送参数

如何递归加载RestKit中由外键标识的嵌套对象?

如何使用 Restkit 和 Core Data 存储对象和种子预加载数据

RestKit - 如何排队资源加载?