0

このように、タスクを使用してリクエストを送信しています:

    let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in

                dispatch_async(dispatch_get_main_queue(), {

                    //remove from queue
                    weakself?.popTask(task: task)
    }
}

self.pushTask(task)
task.resume()

再開する前にタスクをキューにプッシュする必要があります。それが終わったら、それをポップする必要があります。このエラーが発生した問題:変数が独自の初期値内で使用されている

私は何をすべきか?タスクを作成して、その完了ハンドラを設定することは可能ですか?

ありがとう

4

1 に答える 1

0

まだ作成されていないため、完了ブロックがタスクを参照できないことは正しいと思います。

それが次の意味です。

独自の初期値内で使用される変数

これを回避するには、設定する前に定数を宣言するだけです。例えば

let task: NSURLSession
task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in

            dispatch_async(dispatch_get_main_queue(), {

                //remove from queue
                weakself?.popTask(task: task)
}
于 2016-03-21T16:36:02.607 に答える