在 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.login
和 APIEndpoint.baseURL
。在你的情况下你应该写
var request = URLRequest(url: APIEndpoint.login)
目前,我想编写一个包含我所有 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.login
和 APIEndpoint.baseURL
。在你的情况下你应该写
var request = URLRequest(url: APIEndpoint.login)