在 Swift 中访问同一个 class 中的变量

Access variable in the same class in Swift

目前,我想编写一个包含我所有 API 的 APIEndpoint class。我有一个变量 baseURL,我想将它用于剩余部分。但是当我试着像下面这样写的时候,就报错了。

class APIEndpoint {
    static let shared = APIEndpoint()
    static let baseURL = "https://13.251.102.94:5001/api/"
    static let login = URL(string: baseURL + "auth/customer/login")!
}

我的函数

func performLogin () {
        var request = URLRequest(url: APIEndpoint.shared.login)
        request.httpMethod = "POST"
        let json: [String: String] = ["username": self.name, "password": self.password]
        request.httpBody = try? JSONSerialization.data(withJSONObject: json)
        Network.shared.session.dataTask(with: request) { (data, response, err) in
            guard let data = data else { return }
            print(JSON(data)["data"])
        }.resume()
}

错误:

Static member 'login' cannot be used on instance of type 'APIEndpoint'

行内:var request = URLRequest(url: APIEndpoint.shared.login)

login 和 baseURL 是 class APIEndpoint 的静态成员。您已经可以将它们用作 APIEndpoint.loginAPIEndpoint.baseURL。在你的情况下你应该写

var request = URLRequest(url: APIEndpoint.login)