gpt4 book ai didi

ios - 使用 RestKit 执行同步请求

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:25 24 4
gpt4 key购买 nike

- (BOOL)do_a_Restkit_request_and_return_a_boolean
{
[manager postObject:nil path:@"/mypath" parameters:@{@"password":password} success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
myResult = [mappingResult firstObject] == 5;
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
}];

return myResult;

}

你好,我想像上面的 Synchronous 一样进行 RestKit 调用,以便在调用 Success block 后返回 myResult。

最佳答案

您可以使用这样的方法:

NSMutableURLRequest *request = // create a request…
RKObjectRequestOperation *operation = [manager objectRequestOperationWithRequest:request success:nil failure:nil];
[operation start];
[operation waitUntilFinished];

BOOL myResult = NO;

if (!operation.error) {
myResult = [operation.mappingResult firstObject] == 5;
}

return myResult;

注意事项:

  • 完成 block 操作完成后调用,因此如果您提供成功/失败 block ,它们将在方法返回之前调用
    • (这就是为什么我建议您将 nil 传递到完成 block 中。)
  • waitUntilFinished 将阻塞您所在的任何线程,因此请确保它不是主线程。
  • 如果您需要帮助创建请求,请参阅Creating Request Objects in the RKObjectManager Class Reference .
  • 同样,如果您可以重写代码以异步工作,那可能会比这个解决方案更好。

关于ios - 使用 RestKit 执行同步请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20589064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com