0

こんにちは、iPhoneアプリケーションを開発しています。クラス B に委任されたクラス B から NSURLConnection を作成する必要があります。接続を確立するときに、前のビュー、つまりクラス A に戻ります。そのため、クラス B オブジェクトの割り当てが解除され、NSURLConnection からエラーが発生しました。クラスBに委任されました.では、クラスAに移動した場合でもクラッシュしないように、接続を確立するにはどうすればよいですか.GCDまたは他のいくつかの異なるスレッドを使用して、別のデリゲートを設定せずにこれを正常に機能させますか.

4

2 に答える 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 に答える