2

次のコードを使用して、クラスの初期化で NSURLSession を作成しています。

dispatch_once(&Static.token) { [unowned self] in
        let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(CONSTANTS.BackgroundSessionUploadIdentifier)
        Static.session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil)
    }

それが完了すると、クラスは deinited されず、将来のアップロードのコールバックは最初のクラスのインスタンス化を自分自身として持ちます。アップロードが完了したら、NSURLSession を適切にクリーンアップするにはどうすればよいですか?

私のクラス全体はここで見ることができます:

https://gist.github.com/aishowdown/e88f6595e5a23d936e29

4

1 に答える 1

8

電話

session.finishTasksAndInvalidate()、最後のタスクが終了した後にセッションが破棄されます。

また

session.invalidateAndCancel()、セッションはすぐに破棄されます

于 2015-08-07T01:34:18.957 に答える