1

インターネット接続に問題がある場合、非同期リクエストをキャンセルしようとしています。

var connection: NSURLConnection!
self.connection = NSURLConnection.sendAsynchronousRequest(request2, queue: NSOperationQueue.mainQueue())
{

    (response, data, error) in ();
    if(response != nil){
    if let Data: AnyObject! ..... }

これがコードです。次の方法でリクエストをキャンセルしようとしています。

self.connection.cancel()

しかし、いくつかのエラーがあります。「void」型の値を NSURLConnection 型の値に代入できません。

4

1 に答える 1

1

sendAsynchronousRequestは何も返さない関数ですが、それを に代入していますself.connection

NSURLConnection非同期リクエストを送信するためにインスタンスは必要ありません。これはクラス関数であり、必要に応じて your NSURLRequest、 customNSOperationQueueまたはを渡しcompletionHandlerます。

sendSynchronous-また、またはを介し​​て行われたリクエストを実際にキャンセルすることはできませんsendAsynchronousRequestNSURLSessionTaskと組み合わせて使用​​するには、を作成する必要がありますNSURLSessionNSURLSessionTaskメソッドがありcancel()ます。

于 2015-05-12T16:19:39.277 に答える