각 연결이 대리자 메서드에서 자체 논리를 수행하는 여러 비동기 연결을 만드는 클래스가 있습니다.여러 비동기 NSURLConnection 대리자를 관리하는 방법은 무엇입니까?
대리인이 클래스 자체이기 때문에이 분리를 NSURLConnection 대리자 메서드의 논리에서 어떻게 구현할 수 있습니까?
각 연결이 대리자 메서드에서 자체 논리를 수행하는 여러 비동기 연결을 만드는 클래스가 있습니다.여러 비동기 NSURLConnection 대리자를 관리하는 방법은 무엇입니까?
대리인이 클래스 자체이기 때문에이 분리를 NSURLConnection 대리자 메서드의 논리에서 어떻게 구현할 수 있습니까?
내 투표는 수행중인 작업마다 다른 클래스를 만드는 것입니다. 그것은 훨씬 더 많은 일처럼 들릴지 모르겠지만, 코드는 아마도 더 적은 버그로 이어질 많은 청소기의 지옥이 될 것입니다.
3 월 2014 편집 - 대리자 메서드를 사용하지 마십시오. 블록을 사용하십시오.
NSURLConnection에서 전달 된 값과 저장된 값을 비교하여 어느 연결이 책임이 있는지 확인하십시오. 대리자를 다른 객체로 만들거나; 또는 콜백이 일반적인 방식으로 동작하도록 만들 수 있습니다.
개체 지향성에있어 개체를보다 잘 표현해야하는 것처럼 들립니다.
각각 자신의 URL 연결을 관리하는 여러 클래스를 관리하는 클래스가 있어야합니다.
이런 문제가 발생했습니다. 나는 똑같은 일을하는 수업을 가지고있다. NSURLConnection 객체를 변경 가능한 사전 인스턴스 var에 hash
을 키로 저장하여 작업했습니다. 그런 다음 클래스에 cancelAllConnections
메서드를 추가하고 각보기 컨트롤러의 viewDidUnload
메서드에서이 메서드를 호출합니다. 메서드는 변경 가능한 사전의 모든 연결 개체를 제거합니다. 그런 다음 NSURLConnection의 connectionDidFinishLoading
에 체크를 추가하여 변경 가능한 사전의 해시 키를 확인합니다. 해시 값이 존재하지 않으면 연결이 취소되고 콜백 선택기가 가비지 개체에서 수행되지 않는다는 의미입니다.
위임자와 호출 클래스가 동일해야한다면 각 연결에 대한 참조를 저장하고 '- (void) connection : (NSURLConnection *) connection didReceiveResponse : (NSURLResponse *) response'에서 테스트해야합니다. – catsby