1

次のクラス メソッドを作成します。

+(void) getValue4Key:(NSString*)p_key andSet:(id)p_variable
{    
    NSString *baseURLString = <<myURL>>;
    @try{
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        [manager GET:baseURLString
          parameters:nil
             success:^(AFHTTPRequestOperation *operation, id responseObject) {
                 NSDictionary* element = responseObject[0];
                 element = [element objectForKey:@"fields"];

                 p_variable = [element objectForKey:@"value"];
             }
             failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                 NSLog(@"getSystemVariableKey error: %@",error);
             }];
    }
    @catch (NSException *exception) {
        NSLog(@"exception %@", exception);
    }
}

2 つの質問:

  1. 次のエラーが表示されます: 変数は割り当てられません (__block 型指定子がありません) メソッド パラメーターにブロックを設定するにはどうすればよいですか?
  2. この関数を呼び出すには、変数を渡す必要があります&self.setMeか?
4

2 に答える 2

0

p_variable関数のローカル変数であるパラメーターです。ブロックは、何らかの操作の最後に非同期で実行されます。getValue4Key:andSet:ブロックが実行されるまでには、がすでに戻ってからかなり経っています。したがって、p_variable変数を設定できたとしても、誰もその変数を使用することはできません。

于 2014-12-06T00:18:36.903 に答える