2

복잡한 GCD/블록 기반 메소드를 작성하는 경우가 많습니다 (아래 코드 스 니펫과 유사).GCD 블록과 메소드 간소화

  1. 어떻게 작은 부분의 방법 이런 종류의 헤어 것?

  2. 당신은 오히려 관리 객체의 코드에서 구문 분석 방법을 GCD가 활성화겠습니까하거나 오히려 보기 컨트롤러에서 GCD 코드를 했을까?

  3. 어떻게 내가 NSOperationQueue currentQueue 사용하는 경우, 완료 핸들러가 호출되지 않습니다 [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]배경 큐 (아래 코드에서 NSURL 요청를 실행할 수 있습니다.

+0

, 너무 주관적인. –

+0

@ RichardJ.RossIII : 응? 너무 암시하는 것? –

+0

@skinnyTOD 죄송합니다. 주관적인 ... 자동 수정 FTL입니다. –

답변

3
  1. C 함수 또는 인스턴스 메서드를 사용하여 특정 프로세스 (예 : XML 파일에 저장)를 위임합니다.

  2. 확실히 개체의 코드에 보관하십시오. 그대로 MVC를 너무 많이 위반하고 있습니다.

  3. NSURLRequest을 사용하지 마십시오. 대신 AFNetworking 또는 RestKit을 사용하십시오.

+0

또는 MKNetworkKit – Raspu

+0

펀치 라인에 +1 : "C 함수 (...) 사용" – Peres

+0

@JackyBoy 진심으로, 그 질문에 대한 참조로 의미가 아니 었어, 나는 맹세한다. –

2

나는 그것을 분리하여 실제로 MVC 디자인을 볼 수 있습니다. 그래서 나는 것 :

  1. UIViewController
  2. 관리자 클래스를 NSURLConnection와 XML 파서
  3. 에게의 UIViewController 사이에 처리하는 클래스를 상호 작용을 처리 할 수 ​​NSURLConnection (또는 제 3 자 당신이 좋아하는 것).
  4. XML 파싱 및 사후 작성을 처리하는 클래스입니다.

위임을 사용하려면 통신을 설정하십시오. 이렇게하면 다른 작업 영역을 가질 수 있습니다. 따라서 XML 구문 분석을 변경해야하는 경우 클래스를 전환하면됩니다. 이 논리를 다른 곳에서 사용해야하는 경우 UIViewController을 전환하면됩니다. 간단하고 깨끗하게 유지하십시오.

P.S : 때때로, 그것은 본성에 상관없이 당신이 무엇 코드 그냥,에 의해, 복잡하고 사용하시기 바랍니다 의견, 당신은 ... 나중에 자신을 감사 할 것이다 주제 오프