RKObjectManager sharedManager getObjectsAtPath可选择保存在持久存储中

时间:2014-03-18 13:26:26

标签: ios iphone cocoa-touch restkit restkit-0.20

    [[RKObjectManager sharedManager] getObjectsAtPath:@"/pathpattern/:userId" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
         NSLog(@"success");
    } failure:^(RKObjectRequestOperation *operation, NSError *error) {
         NSLog(@"fail");
    }];

我正在使用RKManagedObjectStore

addSQLitePersistentStoreAtPath:fromSeedDatabaseAtPath:withConfiguration:options:error

定义的模式为不同的" userId"提供不同的数据,我想在sqlite数据库中仅为一个userId保存数据,对于我不想保存的其他userId。 有任何建议如何使用相同的[RKObjectManager sharedManager]

实现这一目标

2 个答案:

答案 0 :(得分:1)

您可以将RKDynamicMapping与该路径的响应描述符一起使用。通过该映射,您可以分析传入的数据并确定实际要将哪个映射应用于接收的数据。

请注意,“不保存'核心数据的新对象意味着使用RKObjectMapping代替RKEntityMapping

答案 1 :(得分:1)

你不要初始化你的共享经理。试试这个。

NSURL *url = [NSURL URLWithString:yourURL];
    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
    RKObjectManager *operation = [[RKObjectManager alloc] initWithHTTPClient:httpClient];
    [[RKObjectManager sharedManager] getObjectsAtPath:kURLToDownloadData 
                                           parameters:nil
                                              success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){
 NSLog(@"success"); 
}
                                              failure:^(RKObjectRequestOperation *operation, NSError *error) {
 NSLog(@"fail");
}