我对 Swift 编码还很陌生,目前正在开发我的第一个 iOS 应用程序。我的应用程序的一部分必须通过发出请求并解析它返回的 JSON 来与 Spotify API 进行通信。我有一个相对简单的async函数来实现这一点,并且在大多数情况下,它效果很好。不过,我最近以语句的形式向该函数添加了一些附加功能if,用于调整目标 URL 的构建方式。周围的代码是相同的,甚至使用request共享的。URLSession
这是我正在讨论的函数的片段:
// build the request
var request: URLRequest
if (id != nil) {
// failing case
let url = URL(string: "https://api.spotify.com/v1/track/\(id!)")!
request = URLRequest(url: url)
} else {
// working case
var url = URLComponents(string: "https://api.spotify.com/v1/search")!
url.queryItems = [
URLQueryItem(name: "q", value: self.queryString),
URLQueryItem(name: "type", value: self.typeString)
]
request = URLRequest(url: url.url!)
}
request.httpMethod = "GET"
request.addValue("Bearer \(self.qe.accessToken!)", forHTTPHeaderField: "Authorization")
// …Run Code Online (Sandbox Code Playgroud)