2015-01-05 12 views
10

は、次の構文が可能であった:スウィフトNSURLConnection sendSynchronousRequest

私が使用しているスウィフトに今
NSHTTPURLResponse *response = nil; 
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]; 
if ([response statusCode] == 404) 
{ 
} 

私が使用している場合ので、動作しますが、私はもうからstatusCodeにアクセスすることはできません
var response : AutoreleasingUnsafeMutablePointer<NSURLResponse?> = nil 
let urlData = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: err) 

NSHTTPURLResponseは、NSURLResponseが必要であるというエラーを返します。

これを解決する方法はありますか?

+0

、私はあなたが決してメインスレッドから 'sendSynchronousRequest'を使用していないしている願っています。 1つは常に非同期リクエスト(特にキャンセル可能なリクエスト)を優先します。 – Rob

答えて

25

代わりに、手動でAutoreleasingUnsafeMutablePointerを作成する、あなたは単にあなたがへのポインタを送信したい値をラップする&を使用することができます - あなたのコードは非常に簡単になる:呼び出しの後

var response: NSURLResponse? 
var error: NSError? 
let urlData = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error) 

を、あなたはあなたのをキャストする必要がありますNSHTTPURLResponseへの応答は、これらのプロパティにアクセスするには:明らかに

if let httpResponse = response as? NSHTTPURLResponse { 
    println(httpResponse.statusCode) 
} 
+0

完全に動作します。ありがとうございました! – user3573256

+1

@Robありがとう、固定。 –

関連する問題