swift - 为什么我们的 URLSession 对象是变量而不是常量

标签 swift urlsession

我正在学习有关使用 REST API 从第三方服务器取回 JSON 的教程。我们正在构建一个 networkProcessor 类,我们将能够通过在 ViewControllers 中创建此类的实例来使用它,以便为网络调用创建 url session 。我注意到作者将 session 占位符声明为变量而不是常量,这与我在使用 Xcode 时始终考虑首先使用常量的知识背道而驰。作者可能选择将其设为变量而不是常数,是否有特定原因?

这是我目前所拥有的:

import Foundation


class NetworkProcessor {


    lazy var configuration: URLSessionConfiguration = URLSessionConfiguration.default
    lazy var session: URLSession = URLSession.init(configuration: self.configuration)

    let url: URL

    //since it is a class we need to initalize this class
    init(url: URL) {
        self.url = url
    }
}

最佳答案

当你使用关键字 lazy 时,你不能同时使用它和 let 关键字。惰性属性必须是变量而不是常量。

关于swift - 为什么我们的 URLSession 对象是变量而不是常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070244/

相关文章:

swift - 每天在 Swift 中执行一个特定的方法

swift - 如何为Live Photo提供 "hint"

swift - 使 Button 跨越 VStack

带指示器的后台快速发布

iOS Swift URLSession POST 请求因缓慢的 API 调用而重复

json - Swift http post 没有发布数据

ios - 如果我在页面完成之前退出页面,如何取消 URLSession.shared.dataTask?

ios - Storyboard只加载一次

ios - 导出已连接,但在展开可选值时意外发现 nil