非同期nsurlconnectionでnszombiesを処理する方法は?
-
13-09-2019 - |
質問
私は現在、非同期に使用しています NSURLConnection
いくつかと UIViews
(すべてのビューが処理されます NSURLConnection
代表として)。私が抱えている問題は、ユーザーがビューを速く切り替えてデリゲートがなるときです NSZombie
アプリがクラッシュします - つまり、NSURLCONNECTIONには生きている代表がもうありません。それで、最初の質問は、これを回避する方法があるかどうかです。
2番目の質問は単純です - nszombieを処理するにはどうすればよいですか?単純 if(myObject != nil)..
まったく機能しません。
解決
必要がある キャンセル NSURLConnection
処分する前に、それはデリゲートです。あなたのnsurlconnectionへの参照を保持するだけです UIView
それは代表者と電話として機能します [urlConnection cancel]
.
メッセージをリリースした後、そのポインターを使用し続ける場合は、ポインターをゼロに設定する必要があります。例として:
id myObject = [[SomeObject alloc] init];
/* Some code */
[myObject release];
myObject = nil;
/* Some more code */
if (myObject != nil) {
[myObject doSomething];
}
ただし、メッセージを送信することは有効であることに注意してください nil
したがって、メッセージの送信を安全にガードする必要はありません。単に効果がありません myObject == nil
.
所属していません StackOverflow