당신은 질문 :
여전히 가장 좋은 방법을 AFHTTPSessionManager
의 싱글을 만들 수 있나요? (AFNetworking 2.0, iOS7)
모범 사례인지 확실하지 않습니다. 싱글 톤은 자주 조롱을받습니다 (싱글 톤에 대한 많은 논점에 대한 링크가있는 What's wrong with singleton? 참조). 그들은 편리하지만, 대부분의 애플 리케이션을 위해, 세션 관리자를위한 싱글 톤은 불필요합니다. 내 일반적인 권고는 당신이 그렇게 할 필요가 없다면 싱글 톤을 사용하지 말아야한다는 것입니다.
이것은 (Stack Overflow에서 명시 적으로 싫어하는) 의견과 논쟁의 주제이므로 더 이상 질문하지 않을 것이라고 제안합니다. 위의 Stack Overflow 질문에있는 링크를 따라 가면 거기에 많은 의견이 표시됩니다.
요청할 경우 ... 동시 작업을 지원합니까?
예, 네트워크 요청은 비동기 적으로 실행되며 동시 작업을 지원합니다.
이러한 작업은 독립적 인 작업 대기열에 있습니까?
이 글을 쓸 때 AFHTTPSessionManager
을 통해 생성 된 요청은 작업 대기열에서 전혀 실행되지 않습니다. 세션의 관리자 NSURLSession
은 작업 자체를 관리합니다. 한편
의
NSURLConnection
기반
AFHTTPRequestOperationManager
은 하나의 동시 작업 큐에
GET
및
POST
요청을 실행합니다. 직접
AFHTTPRequestOperation
을 수동으로 생성하는 경우 원할 경우 자체 대기열에 추가 할 수 있습니다.
하지만이 모든 것은 학문적입니다. 귀하의 진짜 질문은 GET
과 POST
요청이 비동기 적으로 실행되는지 여부와 대답이 "예"라고 생각합니다. 그리고 질문이 서로에 대해 동시에 실행되는지 아닌지에 대한 대답은 "예"입니다.
출처
2014-05-23 21:37:34
Rob
대단히 감사합니다. 그것은 downvotes를 설명합니다. 이 특정 경우에는 싱글 톤 패턴이 문서의 저자에 의해 권장됩니다. http://cocoadocs.org/docsets/AFNetworking/2.0.0/Classes/AFHTTPSessionManager.html – alexphilipp
*** "내 일반적인 권고는 당신이 그렇게 할 필요가 없다면 싱글 톤을 사용하지 마십시오."*** 싱글 톤 AFHTTPSessionManager 객체는 요청 serializer 및 응답 serializer 구성을 유지하며 이후 요청에 대해서는 초기화되지 않습니다. 메모리 사용량을 계산하지 못했지만 NSObject에서 상속되었으며 몇 가지가 있습니다. 무거운 속성이 무엇입니까? – Itachi
세션 관리자를 항상 다시 인스턴스화하지 않는 인수이지만 싱글 톤과 동일하지 않습니다. 재 패턴화를 포함하지 않는 다른 패턴 (예 : 종속성 주입)이 있지만 싱글 톤의 문제를 수반하지 않는다. 네트워크 관리자를 위해 싱글 톤을 사용하는 것은 내가 본 가장 나쁜 패턴이 아니라는 것이다. (사실, 나는 그것을 수행했다.) 나의 요지는 단지 많은 사람들이 너무 몰리는 것이다. 그 의미와 대안을 생각하지 않고 싱글 톤으로 빠르게 옮겨 가라.하지만 여기서는 싱글 톤을 다시 소화해야한다고 생각하지 않는다. 다른 곳에서는 철저히 다루어졌다. – Rob