ASIHTTPRequest 클래스를 사용하여 json 결과 세트를 얻으려면 서버에 비동기 호출을 할 수있는 "BSjax"클래스가 있습니다. BSjax 클래스 내 서버의 JSON 응답을 구문 분석,이 호출을 통해 호출 뷰 컨트롤러로 다시 제어를 전달 그래서 그것을 설정 :objective-c 선택기를 통한 콜백
[[self delegate] performSelectorOnMainThread:@selector(bsRequestFinished:) withObject:self waitUntilDone:YES];
... "bsRequestFinished"호출보기에서 콜백 방법 제어 장치. 어떤 페이지가 다른 유형의 요청을해야 할 필요가 있음을 깨달을 때까지이 모든 것이 잘 작동했습니다. 요청의 유형에 따라 해당 콜백 함수에서 여러 가지 유형의 작업을 수행하려고합니다.
내게는 내 BSjax 클래스에 다른 콜백 함수 이름을 전달할 수있는 것처럼 보이지만 가장 정교한 수정이 될 수 있습니다 ...하지만 문제가 있습니다 (가능하다면 확실하지 않습니다) 변수를 전달해야합니다. 즉, 콜백 함수의 이름을 보유하고이 같은 뭔가 위의 호출을 대체 : 그것은 새로운 요청을 만들기 위해 BSjax를 호출 할 때 "self.variableCallbackFunctionName는"호출 뷰 컨트롤러에 의해 설정된다
[[self delegate] performSelectorOnMainThread:@selector(self.variableCallbackFunctionName) withObject:self waitUntilDone:YES];
....
이것도 가능합니까? 그렇다면 권장 할 만합니까? 그렇지 않다면 대안?
EDIT : 도착한 모든 수정 사항은이 클래스가 비동기 요청을한다는 사실을 고려해야하므로 콜백 함수 처리가 특정 요청에 올바르게 연결되어 있는지 확인해야합니다. .. FIFO 처리 순서에 의존 할 수 없기 때문에.
편집 2 : SEL 유형 변수를 전달하는 것처럼 보이는 것이 좋습니다. 지금 내가 싸우고있는 것은 BSjax 클래스의 유지 된 속성으로 저장하는 구문을 알아내는 것입니다.
좋은 ... U 사람! NSSelectorFromString 함수에 대해서도 몰랐습니다. 완벽하게 일했습니다! – codemonkey