비동기 nsurlconnection에서 nszombies를 처리하는 방법?
-
13-09-2019 - |
문제
나는 현재 비동기식으로 사용하고 있습니다 NSURLConnection
몇 가지 UIViews
(모든 뷰 손잡이 NSURLConnection
대의원으로). 내가 가진 문제는 사용자 스위치가 너무 빨리보고 대의원이되는 것입니다. NSZombie
앱 충돌 - 즉 NsurlConnection에는 더 이상 살아있는 대의원이 없습니다. 그래서 첫 번째 질문은 이것을 우회하는 방법이 있는지 여부입니다.
두 번째 질문은 간단합니다. Nszombie를 어떻게 처리합니까? 단순한 if(myObject != nil)..
전혀 작동하지 않습니다.
해결책
당신은 필요합니다 취소 그만큼 NSURLConnection
처분하기 전에 대의원입니다. 당신의 nsurlconnection에 대한 참조를 유지하십시오 UIView
그것은 대의원과 전화 역할을합니다 [urlConnection cancel]
.
해당 포인터를 계속 사용하면 메시지를 릴리스 한 후에는 포인터를 NIL로 설정해야합니다. 예로서:
id myObject = [[SomeObject alloc] init];
/* Some code */
[myObject release];
myObject = nil;
/* Some more code */
if (myObject != nil) {
[myObject doSomething];
}
그러나 메시지를 보내는 것이 유효합니다. nil
따라서 메시지 보내는 메시지를 안전하게 보호 할 필요가 없습니다. 단순히 효과가 없다면 효과가 없습니다 myObject == nil
.
제휴하지 않습니다 StackOverflow