欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 综合教程 >内容正文

综合教程

Swift: Escaping closure captures non-escaping parameter 'onCompletion'

发布时间:2023/12/13 综合教程 45 生活家
生活随笔 收集整理的这篇文章主要介绍了 Swift: Escaping closure captures non-escaping parameter 'onCompletion' 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

遇到一个编译报错:

Escaping closure captures non-escaping parameter 'onCompletion'

代码如下:

func fetchRecentPhotos(completion: (PhotosResult) -> Void)
    {
        let url = recentPhotosURL()
        let request = URLRequest(url: url as URL)
        let task = session.dataTask(with: request)
        {
            (data, response, error) -> Void in
            
            let result = self.processRecentPhotosRequest(data: data as NSData?, error: error as NSError?)
            completion(result)
        }
        task.resume()
    }

 这是由于completion导致的,默认闭包completion是@nonescaping的,只需要声明成@escaping即可。

func fetchRecentPhotos(completion: @escaping (PhotosResult) -> Void)

Hunter药药

总结

以上是生活随笔为你收集整理的Swift: Escaping closure captures non-escaping parameter 'onCompletion'的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。