내 질문 요약 : NSURLConnection은 해당 대리인을 유지합니까?NSURLConnection은 델리게이트를 유지합니까?
자세한 질문 시나리오 :
나는입니다 JsonDownloader라는 사용자 정의 클래스가하는 URL에 취해 URL을 반환하는 JSON의있는 NSDictionary를 반환해야합니다.
iPhone 앱에서 나는 이와 같은 작업을 수행합니다. 이 경우, 호출하는 객체에 개체 : 그것은 returnDataTo 콜백을 수행하는 상기 JsonDownloader가 다운로드하고 파싱
- (void)viewDidLoad {
JsonDownloder *temp = [[[JsonDownloader alloc] initWithURL:urlString returnDataTo:self]];
[temp release];
[super viewDidLoad];
}
가 완료되면 (init 메소드는 전체 프로세스 킥오프).
잘 작동합니다. 웹 서버 응답에 30 초 지연이 있다고하더라도 JsonDownloader는 여전히 존재하며 올바르게 콜백합니다.
제 질문은 이것입니다. JsonDownloader가 이벤트주기가 끝나는 시점을 지키는 방법은 무엇입니까? 나는 그것을 명시 적으로 발표하고있다.
내 직감은 NSURLConnection이 델리게이트에 대해 retain을 수행해야한다는 것입니다.하지만 문서에서 아무것도 보지 못했습니다. 누구나 아이디어가 있습니까?
중대한 질문 및 중대한 응답. 나는 이것으로 어려움을 겪고 있었지만, 대의원이 배정 된 직후에 [self release]를 추가하기로 결정했다. 자기가 내 수업 시간에 위임자이기 때문에, 그 보유 수를 늘릴 이유가 없음을 알았습니다. 그것이 틀렸다면 누군가가 내게 알려줍니다. – jocull
그냥 추가하고 싶습니다 - 고마워요. The Missing Manual, part 327. 애플의 문서에 이처럼 중요한 사실이 언급되어 있지 않다는 신념이있다. 나는 그것을 유지하고 있었지만 확실하지는 않았다고 생각했다. 문서는 그것에 대해 아무 말도하지 않았고, 대부분의 경우 Cocoa 프레임 워크의 대리인은 대부분 보유되지 않았다. 이것은 예외입니다. – n13