- (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 块后返回 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;
Notes:
- The completion blocks are called after the operation is finished, so if you provide success/failure blocks, they won't be called until after the method returns
-
waitUntilFinished
将阻塞您所在的任何线程,因此请确保它不是主线程。
- 如果您需要帮助创建
request
, see 在 RKObjectManager 类参考中创建请求对象 http://restkit.org/api/latest/Classes/RKObjectManager.html#task_Creating%20Request%20Objects.
- 同样,如果您可以重写代码以异步工作,那可能会比这个解决方案更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)