2010-05-12 3 views

답변

6

내 투표는 수행중인 작업마다 다른 클래스를 만드는 것입니다. 그것은 훨씬 더 많은 일처럼 들릴지 모르겠지만, 코드는 아마도 더 적은 버그로 이어질 많은 청소기의 지옥이 될 것입니다.

3 월 2014 편집 - 대리자 메서드를 사용하지 마십시오. 블록을 사용하십시오.

1

NSURLConnection에서 전달 된 값과 저장된 값을 비교하여 어느 연결이 책임이 있는지 확인하십시오. 대리자를 다른 객체로 만들거나; 또는 콜백이 일반적인 방식으로 동작하도록 만들 수 있습니다.

+0

위임자와 호출 클래스가 동일해야한다면 각 연결에 대한 참조를 저장하고 '- (void) connection : (NSURLConnection *) connection didReceiveResponse : (NSURLResponse *) response'에서 테스트해야합니다. – catsby

2

개체 지향성에있어 개체를보다 잘 표현해야하는 것처럼 들립니다.

각각 자신의 URL 연결을 관리하는 여러 클래스를 관리하는 클래스가 있어야합니다.

0

이런 문제가 발생했습니다. 나는 똑같은 일을하는 수업을 가지고있다. NSURLConnection 객체를 변경 가능한 사전 인스턴스 var에 hash을 키로 저장하여 작업했습니다. 그런 다음 클래스에 cancelAllConnections 메서드를 추가하고 각보기 컨트롤러의 viewDidUnload 메서드에서이 메서드를 호출합니다. 메서드는 변경 가능한 사전의 모든 연결 개체를 제거합니다. 그런 다음 NSURLConnection의 connectionDidFinishLoading에 체크를 추가하여 변경 가능한 사전의 해시 키를 확인합니다. 해시 값이 존재하지 않으면 연결이 취소되고 콜백 선택기가 가비지 개체에서 수행되지 않는다는 의미입니다.

관련 문제