Swift 为什么我们的URLSession对象是变量而不是常量
我正在学习使用RESTAPI从第三方服务器获取JSON的教程。我们正在构建一个networkProcessor类,通过在ViewController中创建该类的实例来为网络调用创建url会话,我们将能够在其中使用它。我注意到,作者将会话占位符声明为变量,而不是一个常量,它违背了我在使用XCODEL时所学到的知识,它总是首先考虑使用常量。作者之所以选择将其作为变量而不是常量,有什么具体原因吗 以下是我到目前为止的情况:Swift 为什么我们的URLSession对象是变量而不是常量,swift,urlsession,Swift,Urlsession,我正在学习使用RESTAPI从第三方服务器获取JSON的教程。我们正在构建一个networkProcessor类,通过在ViewController中创建该类的实例来为网络调用创建url会话,我们将能够在其中使用它。我注意到,作者将会话占位符声明为变量,而不是一个常量,它违背了我在使用XCODEL时所学到的知识,它总是首先考虑使用常量。作者之所以选择将其作为变量而不是常量,有什么具体原因吗 以下是我到目前为止的情况: import Foundation class NetworkProces
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关键字。懒惰属性必须是变量而不是常量。可能是因为您不能拥有
懒惰let
属性,尽管它也没有太多懒惰的理由。@dan为什么它没有太多懒惰的理由呢?是因为我们正在创建一个类,在这个类中它将以抽象的方式使用吗?我想说的是,我们可以在初始化这个类时传入这些参数吗?