使用RestKit进行同步调用

Nic*_*las 3 synchronization ios restkit

我为我的实体用户设置了一个objectMapping

RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[User class]];
[userMapping mapKeyPath:@"first_name" toAttribute:@"firstName"];
[userMapping mapKeyPath:@"last_name" toAttribute:@"lastName"];
[manager.mappingProvider setMapping:userMapping forKeyPath:@"users"];
[manager.mappingProvider setSerializationMapping:[userMapping inverseMapping] forClass:[User class]];
Run Code Online (Sandbox Code Playgroud)

当应用程序进入后台时我想保存他的个人资料:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[RKObjectManager sharedManager] putObject:currentUser delegate:self];
}
Run Code Online (Sandbox Code Playgroud)

但它不会让我在关闭应用程序时运行请求(我猜不允许新的线程).所以我想同步这样做.

但是,我没有设法用RestKit做到这一点.我身边有一些误会吗?我想拥有:

[[RKObjectManager sharedManager] putObjectSynchronously:currentUser];
Run Code Online (Sandbox Code Playgroud)

小智 6

如果需要同步发送,则无法使用RKObjectManager上的便捷方法,例如putObject,因为这些便捷方法都代表您异步发送请求.相反,您可以尝试以下内容:

RKObjectLoader* loader = [[RKObjectManager sharedManager] objectLoaderForObject:currentUser method:RKRequestMethodPUT delegate:nil];
RKResponse* response = [loader sendSynchronously];
Run Code Online (Sandbox Code Playgroud)