いつものデータ転送をしようとしています。 NSMutableURLRequestを定義してから呼び出します
[[NSURLConnection alloc] initWithRequest:request delegate:self];
これはXcode 3では問題ありませんでしたが、Xcode 4はその行で「Expression result未使用」について警告します。リクエストは機能しますが、警告を取り除く方法を見つけたいです。
接続を変数に格納できると思いますが、実際には必要ありません。次の行をnil
に設定するポイントがわかりません(ただし、これにより警告が削除されます)
注:Xcode 4であるか、事実ARCが有効になっているかどうかは100%わかりません。
関数が不要な結果を返す場合、コンパイラの警告を排除するためにvoidにキャストできます。
(void) [[NSURLConnection alloc] initWithRequest:request delegate:self];
私はまだARCを使用していないので、これが良いアイデアであるかどうかは言えません。ARCの前に、このポインタの結果をどこかに保持して、リリースできるようにする必要があります。
progrmrの答えは正しいですが、それを行うためのさらにクリーンな方法があります。
[NSURLConnection connectionWithRequest:request delegate:self];
結果をvoidにキャストしなくても、これにより警告は発生しません。
誰かがそのNSURLConnection
に責任を持つべきです。接続を保存する必要はありませんが、保存する場合はコーディングの方が優れています。問題は、あなたのNSURLConnection
を作成した後、誰もその作成されたインスタンスへのポインタを持っていないということです。
次の例を想定してみましょう。
ClassA
のインスタンスはNSURLConnection
のインスタンスを作成していますClassA
のインスタンスが解放され、割り当て解除されていますNSURLConnection
はまだ生きており、割り当て解除されたインスタンスにデリゲートを起動します。この問題を解決するには、NSURLConnection
のインスタンスを保存し、ClassA
のインスタンスの割り当てが解除された場合、その接続を解放して、NSURLConnection
のインスタンスの割り当てを解除する必要があります。