2011-09-12 5 views
0

ASIHTTPRequest를 사용하여 나머지 api에 건물 API 추가.ASIHTTPRequest에 추가 매개 변수를 전달하는 방법 didFinishSelector 선택자

Api는 모든 요청을 자체 메소드로 래핑합니다.

- (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]; 
} 

현재 내가 클래스 private 변수 _currentCaller _currentSuccessCallback _currentFailureCallback = failureCallback

내가 직접 fooSuccess 콜백에 전달할 수 사용하는 콜백 선택기를 전달하는 방법?

답변

4

NSDictionary를 채우고 요청의 userInfo 속성으로 설정하여 객체를 전달할 수 있습니다.

관련 문제