2011-09-12 3 views
0

ASIHTTPRequestを使用して残りのapi用の建物APIを作成する。追加パラメータをASIHTTPRequestに渡す方法didFinishSelectorセレクタ

すべてのリクエストを独自のメソッドにラップします。

- (void) foo:(id)caller 
    andSuccessCallback:(SEL)successCallback 
    andFailureCallback:(SEL)failureCallback { 

    _currentCaller=caller; 
    _currentSuccessCallback=successCallback; 
    _currentFailureCallback=failureCallback; 

    NSString *urlString = @"http://localhost/foo"; 
    NSURL *url= [NSURL URLWithString: urlString]; 
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
    [request setDelegate:self]; 
    [request setDidFinishSelector:@selector(fooSuccess:)]; 
    [request startAsynchronous]; 
} 

- (void) fooSuccess:(ASIHTTPRequest *)request { 
    if (statusCode >=400) { 
    if ([_currentCaller respondsToSelector:_currentFailureCallback]) 
     [_currentCaller performSelector:_currentFailureCallback withObject:statusCode withObject:message]; 
} else { 
    if ([_currentCaller respondsToSelector:_currentSuccessCallback]) 
     [_currentCaller performSelector:_currentSuccessCallback]; 
} 
    [request release]; 
} 

現在、私はクラスのプライベート変数_currentCaller _currentSuccessCallback _currentFailureCallback = failureCallback

iが直接fooSuccessコールバックに渡すことができます使用するコールバックセレクタを渡す方法は?

答えて

4

オブジェクトを渡すには、NSDictionaryを作成し、それを要求のuserInfoプロパティとして設定します。

関連する問題