2009-11-05 3 views
0

iPhone에서 ASIHttpRequest를 사용하여 내 사이트의 쿼리 문자열 기반 API에서 정보를 얻으려고합니다.iPhone : 완료 요청에서 응답 받기 [ASIHttpRequest]

현재 디자인의 계획 단계에 있으며 어떻게 진행해야 할 지 고민하고 있습니다.

나는 필요한 모든 요청을 처리 할 수업을 갖고 싶습니다. iPhone 애플리케이션의 여러 섹션을이 클래스라고하고 클래스 내에서 ASIHttpRequest 코드를 실행하고 싶습니다. 예 :

  1. 로그인 할 모달보기가 나타납니다.
  2. 이 모달보기는 user/function을 API 클래스로 호출합니다. API 클래스는 URL을 조합하여 호출합니다.
  3. 일단 URL 요청이 처리되고 완료되면 requestFinished 메소드 또는 선택기로 선택하는 것으로 이동합니다.
  4. 모달 뷰는 responseString을 돌려 받고 원하는대로 진행합니다.

이것은 내가 갇혀있는 곳입니다. 어떻게 든 responseString을 네트워크 url 요청의 원래 호출자에게 전달하고 싶습니다.

대리자 메서드를 사용해야합니까? 그렇다면 requestFinished 메소드 내에서 어떻게 호출 할 수 있습니까? 이것에 대해 생각했지만, delegate를 호출하는 requestFinished 함수 호출을 어떻게 가져야하는지 혼란 스럽습니다. 해당 대리자를 ASIHttpRequest와 함께 개체로 전달하는 간단한 방법이 누락되었을 수 있습니다.

NSNotificationCenter에 대해서도 생각했지만 위임자를 사용하는 것보다 더 많은 일이 될 것이라고 생각합니다.

나는 도움을 주셔서 감사합니다.

답변

0

당신은 ASIHttpRequest를 서브 클래스 중 하나를 대체 할 수 있습니다를 상속 할 수의 당신은 백그라운드 스레드에서 일부 처리를 할 (여전히 [super requestFinished]; 전화) 또는 단순히 인스턴스 변수를 추가 할 수 있습니다 - (void)requestFinished

+0

대리인을 사용하는 것이이 문제를 해결하는 가장 좋은 방법일까요? –

+0

Wight out perfect sight, 네, 그렇게 생각합니다. –

1

응답에 따라 원하는 결과에 따라 다릅니다. 응답과 함께 경고 메시지를 표시하기를 원한다면 요청 delagate 메소드에서 직접 수행 할 수 있습니다. 또 다른 방법은 공유 데이터로 클래스에 응답을 저장하고 청취자에게 처리 할 데이터가 있음을 알리는 알림을 게시하는 것입니다. 그것은 어렵지 않습니다) 그리고 세 번째 변형. 델리게이트 및 선택기 속성을 사용하여 클라이언트 - 서버 통신을위한 기본 클래스를 만들 수 있습니다. 그리고 당신이 필요하다면 [delegate performSelector : selector]를 호출하십시오. 그런 다음 등 로그인에 대한 다른 클래스, 확인 버전,

+0

세 번째 옵션을 확장 할 수 있습니까? 나는 계획을 세우려고했으나 내가해야한다고 생각하는 방식으로는 보지 못했습니다. –