2017-03-08 5 views
1

クラス内にメソッドを作成します。 目的関数cで補完ハンドラを使用するメソッド

- (void)getTableData:(NSString *)URL withCompletionHandler:(void (^)(NSString *))handler{ 

__block NSDictionary *JSON; 
[manager POST:urlString parameters:jsonDict success:^(AFHTTPRequestOperation *operation, id responseObject){ 

    JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error]; 
    handler(JSON); 
} 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      NSLog(@"error %@",error); 
      // handle failure 
     }]; 
} 

[ObjOfSecondClass getTableData:BILL withCompletionHandler:^(NSString* returnString)handler{ 
    }]; 

で別のクラスでそれを呼び出すには、ハンドラで期待式のエラーを示しています。

+0

あなたのコールバックには何が欲しいですか? – iPeter

+0

NSDictionary * JSON; – Lenin

+0

私はあなたの問題を本当に理解していません。あなたはもっと具体的になりますか? – iPeter

答えて

2

間違った方法で使用しているため、表現に誤りがあります。

viewDidLoad

[ObjOfSecondClass getTableData:BILL withCompletionHandler:^(NSString* returnString){ 
}]; 

handlerで、このいずれかを試してみてくださいが使用され、それらが呼び出された場所から値を返すためにブロックの実装です。

注 - API not stringから辞書を取得しているため、ブロック定義の文字列を辞書に置き換えてください。

Learn block syntax

+0

ありがとうpawan、それは動作します。 – Lenin

+0

@Lenin upvoteして回答として受け入れてください。 – Pawan

関連する問題