我有以下方法可以从我的 iOS 应用程序(使用 Restkit)进行 Web 服务调用...
BOOL valid = NO;
RKObjectManager *objectManager = [RKObjectManager sharedManager];
NSString *servicePath = [WebServiceHelper pathForServiceOperation:[NSString stringWithFormat:@"/security/isSessionValid/%@", username]];
[objectManager getObjectsAtPath:servicePath parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
BooleanServiceResponse *resp = [mappingResult firstObject];
valid = resp.value;
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"Error while validating session for user %@ : %@", username, error);
}];
return valid;
但是,我在变量上得到一个错误valid
,说它是在块外声明的并且不可分配。我用谷歌搜索了一下,发现了一个我这样声明有效的建议......
__block BOOL valid = NO;
这摆脱了错误。但是,我发现无论我valid
在我的块中设置什么值,退出块时都没有正确设置。如何设置此值以便我的方法返回预期值?