0

저는 일련의 비동기 ASIHTTPRequests (대기열을 사용하고 있습니다)를 기반으로하는 워크 플로우를 적절하게 처리하기 위해 얼마 동안 싸우고 싸우고 있습니다. 지금까지 그것은 나를 잊어 버린 것처럼 보였습니다. 그리고 나는 항상 내 프로젝트 전체에서 폭발하는 대표 전화 및 스파게티 코드의 끔찍한 혼란으로 끝납니다. 다음과 같이iOS의 일련의 비동기 ASIHTTP 요청에 기반한 워크 플로우를 구현하는 가장 좋은 방법은 무엇입니까?

그것은 작동합니다

  1. 항목의 목록 다운로드 (1 싱글 ASIHTTPRequest을 대기열에 추가).
  2. 1 단계에서 검색 한 항목을 저장해야합니다.
  3. 각 항목은 1부터 구문 분석되어 항목 당 1 개의 ASIHTTP 요청을 대기열에 추가합니다.
  4. 3 단계의 각 요청이 처리되고 하위 항목이 저장됩니다.

진행률 % 나이와 메시지로 UI를 업데이트 할 수 있어야합니다. 나는이 일을 깨끗하고 유지 보수가 잘되는 방법으로 이해할 수 없다.

나는 다음과 같은 링크를 살펴 보았다 : 충분히 내가 '무엇을 설명하는

하지만 중 내가 뭔가를 누락, 또는 그들이하지 않는 것 나는 성취하려고 노력 중이다.

블록을 사용할 수 있습니까?

+0

https://github.com/gowalla/AFNetworking과 같은 대체 라이브러리를 살펴 보는 것이 좋습니다. 이번 주에 블로그 게시물을 고려하면 특히 개발 노력이 ASIHTTPRequest에서 중지되었다는 것을 고려해 볼 수 있습니다. – cpjolicoeur

+0

ASIHTTPRequest에 대한 훌륭한 대안이지만, 여전히이 모든 비동기식 물건에 대한 내 문제를 해결하고 지저분한 스파게티 코드를 만드는 데 도움이되는 추가 정보는 볼 수 없습니까? 더 많은 도움을 주셔서 감사합니다 : D – twilson

+0

ASIHTTPRequests 라이브러리가 더 이상 사용되지 않는 것 같습니다 - http://allseeing-i.com/ –

답변

0

일련의 프로세스 및 워크 플로우에서 일련의 비동기 http 및 ftp 처리기를 사용하여 응용 프로그램에서 작업 할 수있는 연습 문제를 겪은 적이 있습니다. ASIHTTP API에 대해 잘 모르겠지만 비슷한 것을했다고 가정합니다. 예를 들어 특정 워크 플로의 모든 요청 작업을 나타낼 수있는 소위 RequestOperationQueue를 정의했습니다. 또한 FTPDownloadOperation과 같은 여러 템플릿 작업을 정의했습니다. 여기 단서가 있습니다. http://www.dribin.org/dave/blog/archives/2009/05/05/concurrent_operations/의 아이디어에 다소 부합하는 이러한 RequestOperations를 모두 구현했습니다. 작업 자체에 위임 논리를 구현하는 대신 KVO를 통해 작업에서 처리 할 수있는 특정 요청에 대한 상태 속성을 제공하는 다른 프로토콜 (http, ftp, rsync 등)에 특화된 콜백 처리기와 같은 sth를 구현했습니다. UI는 예를 들어 RequestOperationQueue에 대한 대리자 프로토콜에 의해 워크 플로에 대한 알림을받을 수 있습니다. 예를 들어 didReceiveCallbackForRQOperation : (RequestOperation) rqo. 내 관점에서 볼 때 클라이언트 - 서버 작업을 비롯한 워크 플로 코딩은이 접근법으로 매우 편리합니다.

관련 문제