为执行网络任务的单例子类NSObject?

时间:2017-05-07 16:44:32

标签: ios swift3 singleton nsurlsession nsobject

我正在检查使用URLSession的示例,网络任务由一个或多或少像这样的单例类执行:

class NetworkManager: NSObject {

static let sharedInstance = NetworkManager()
fileprivate var session: URLSession
fileprivate var dataTask: URLSessionDataTask?

override init() {
    let configuration = URLSessionConfiguration.default
    session = URLSession(configuration: configuration)

    super.init()
}

func search(searchUrl: URL, completion: @escaping NetResult) {
    dataTask?.cancel()

    dataTask = session.dataTask(with: searchUrl, completionHandler: completion)

    dataTask?.resume()
}

// Some other methods

}

此课程也符合URLSessionDownloadDelegate中的extension

这里继承NSObject的好处是什么?

0 个答案:

没有答案