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
、ブロックを終了するときに適切に設定されていないことがわかりました。メソッドが期待値を返すようにこの値を設定するにはどうすればよいですか?