首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子类URLSession iOS 10

子类URLSession iOS 10
EN

Stack Overflow用户
提问于 2016-09-15 23:20:36
回答 1查看 703关注 0票数 1

我正在尝试使用Xcode8在iOS 10上子类化URLSession。我认为Swift类型的系统有点混乱,但我可能遗漏了一些东西:

代码语言:javascript
复制
class MyURLSession: URLSession {

// No errors
override func downloadTask(with request: URLRequest) -> URLSessionDownloadTask {
    return URLSessionDownloadTask()
}

// No errors
override func downloadTask(with url: URL) -> URLSessionDownloadTask {
    return URLSessionDownloadTask()
}

// See errors below
override func downloadTask(with request: URLRequest, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask {
    return URLSessionDownloadTask()
}

// See errors below
override func downloadTask(with url: URL, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask {
    return URLSessionDownloadTask()
}
}



error: method does not override any method from its superclass
    override func downloadTask(with request: URLRequest, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask {
                  ^
Foundation.URLSession:6:15: note: potential overridden instance method 'downloadTask(with:completionHandler:)' here
    open func downloadTask(with request: URLRequest, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDownloadTask
              ^
Foundation.URLSession:7:15: note: potential overridden instance method 'downloadTask(with:completionHandler:)' here
    open func downloadTask(with url: URL, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDownloadTask
              ^
/Users/pshah/Networking/Webservice.swift:108:19: error: method does not override any method from its superclass
    override func downloadTask(with url: URL, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Void) -> URLSessionDownloadTask {
                  ^
Foundation.URLSession:6:15: note: potential overridden instance method 'downloadTask(with:completionHandler:)' here
    open func downloadTask(with request: URLRequest, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDownloadTask
              ^
Foundation.URLSession:7:15: note: potential overridden instance method 'downloadTask(with:completionHandler:)' here
    open func downloadTask(with url: URL, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Swift.Void) -> URLSessionDownloadTask
              ^
EN

回答 1

Stack Overflow用户

发布于 2016-09-15 23:27:50

我想通了。我的项目中有一个Error,所以必须在有错误的方法中将Error?限定为Swift.Error?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39514787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档