このブログでは、複数のNSURLConnectionを処理するための優れたソリューションを提供しています。tag
プロパティを持つカスタムの "CustomURLConnection"クラスを作成してください。通常の後半で、NSURLConnectionのカスタムサブクラスを使用して、クラス内の追加データを後でどのように「見つける」のですか?
- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately tag:(NSString*)tag {
self = [super initWithRequest:request delegate:delegate startImmediately:startImmediately];
if (self) {
self.tag = tag;
}
return self;
}
その後、
CustomURLConnection.m:
http://blog.emmerinc.be/index.php/2009/03/02/custom-nsurlconnection-class-with-tag/
http://blog.emmerinc.be/index.php/2009/03/15/multiple-async-nsurlconnections-example/
基本的に、彼は単にexsisting NSURLConnectionへtag
プロパティを追加しましたNSURLConnectionローディングメソッドods、あなたはできる:
それは私が問題を抱えているところだ。
- は、私が「接続+タグ」 は
- 私は上記の投稿最初のコードスニペットは、通常の「接続」を作成します(なし
tag
)を作成し、その最終的には以下となります。私はそれを参照してください方法は、これは物事が行く方法ですconnectionDidFinishLoading
のような通常のNSURLConnectionメソッドを呼び出します。この時点でtag
はどうなりますか? connectionDidFinishLoading
メソッドでは、接続を「接続+タグ」にキャストして、破棄されたタグ情報が見つからないことがわかりました。どうやって?
たぶん私はちょうど自分自身を混乱させていますが、それは通常のNSURLConnection
道を開始したときtag
が破棄されたかのように思えます。しかしそれをサブクラスとしてキャストすることで、私は再びtag
のプロパティを回復することができます。それはどこの時間に生きていたのですか?
継承をよりよく理解している人がこれを私に説明できますか?
あなたは実際の型変換を行っていません。すべてのObj-Cオブジェクトは単にメモリアドレスへのポインタです。あなたは、コンパイル時に 'CustomURLConnection'であると仮定してコンパイラに指示するだけです。これはあなたのコードの実際の実行に全く影響しません。 –