こんにちは、iPhoneアプリケーションを開発しています。クラス B に委任されたクラス B から NSURLConnection を作成する必要があります。接続を確立するときに、前のビュー、つまりクラス A に戻ります。そのため、クラス B オブジェクトの割り当てが解除され、NSURLConnection からエラーが発生しました。クラスBに委任されました.では、クラスAに移動した場合でもクラッシュしないように、接続を確立するにはどうすればよいですか.GCDまたは他のいくつかの異なるスレッドを使用して、別のデリゲートを設定せずにこれを正常に機能させますか.
質問する
76 次
2 に答える
0
たとえば、クラスBの接続を強く参照する@property (strong, nonatomic) NSURLConnection * connection
必要があります。その後、クラスBを削除すると、次のように呼び出すことができます。[self.connection cancel];
AppleのNSURLConnectionリファレンスドキュメントから:
このメソッドが呼び出された後、接続のデリゲートは接続に関するメッセージを受信しなくなります。接続を再試行する場合は、新しい接続オブジェクトを作成する必要があります。
これを置くのに良い場所は-[UIViewController viewDidDisappear];
于 2012-11-08T19:49:27.560 に答える
0
ClassA では、ClassB のインスタンスの強力なプロパティを作成する必要があります。そうしないと、ClassA に戻ると、ClassB がスタックからポップされ、割り当てが解除されます。また、再度プッシュするときに CLassB の同じインスタンスに移動する場合、ClassB にプッシュするコードは次のようになります (classB というプロパティがあると仮定します)。
if (! self.classB){
ClassB self.classB = [[ClassB alloc] init];
}
[self.navigationController pushViewController:self.classB];
于 2012-11-08T22:32:26.423 に答える