在 iOS 12 中获取数据
Fetch data in iOS 12
当我尝试使用 Xcode 10 Beta 和 Swift 4.2.
获取数据时出现错误
在 swift 4.1 中,我的方法运行得很完美,但现在我遇到了一个错误,我无法在互联网上找到修复它的解决方案。
这是我的代码:
// Download photos from Google for products avatar
func fetchPhotosForProductsFromGoogle(){
guard let requestURL = NSURL(string: URL.googleAPI + "q=\(query ?? "flagUK")" + URL.searchPhotosOnly + URL.googleSearchEngineID + URL.googleAPIKey)
else{
fatalError("URL can't be found.")
}
URLSession.shared.dataTask(with: requestURL) { (data, response, error) in
guard error == nil else {
print(error?.localizedDescription ?? "Error URL Session.")
return
}
do {
let googlePhotosList = try JSONDecoder().decode(GoogleSearchModel.self, from: data!)
} catch {
print(error.localizedDescription)
}
DispatchQueue.main.async {
self.productsTableView.reloadData()
}
}.resume()
}
这是一张有错误的图片:
任何想法都会对我有很大帮助!谢谢
将 NSURL
更改为 URL
,我认为你应该可以开始了:
guard let requestURL = URL(string: "someUrl.com")
else{
fatalError("URL can't be found.")
}
在左侧,您发送 URL
对象,但在右侧,它是 NSURL
func dataTask(with url: URL) -> URLSessionDataTask
在Docs
中查看此处
在 swift 3 之前,swift 类型和它们在 objc 中的计数器类型之间存在隐式桥接,但在 swift 3 之后,它被删除,你必须在传递时明确说明这种类型,参考here了解更多详情
所以你可以这样做
with: requestURL as URL
或使用URL代替NSURL
问题出在 JSON 模型中,其中有一个名为 URL 的结构,由于该结构,Swift 中的 URL class 被覆盖.因此,当您将 JSON 模型转换为 Swift 时要小心,以检查结构、枚举等名称的 2 倍
当我尝试使用 Xcode 10 Beta 和 Swift 4.2.
获取数据时出现错误在 swift 4.1 中,我的方法运行得很完美,但现在我遇到了一个错误,我无法在互联网上找到修复它的解决方案。
这是我的代码:
// Download photos from Google for products avatar
func fetchPhotosForProductsFromGoogle(){
guard let requestURL = NSURL(string: URL.googleAPI + "q=\(query ?? "flagUK")" + URL.searchPhotosOnly + URL.googleSearchEngineID + URL.googleAPIKey)
else{
fatalError("URL can't be found.")
}
URLSession.shared.dataTask(with: requestURL) { (data, response, error) in
guard error == nil else {
print(error?.localizedDescription ?? "Error URL Session.")
return
}
do {
let googlePhotosList = try JSONDecoder().decode(GoogleSearchModel.self, from: data!)
} catch {
print(error.localizedDescription)
}
DispatchQueue.main.async {
self.productsTableView.reloadData()
}
}.resume()
}
这是一张有错误的图片:
任何想法都会对我有很大帮助!谢谢
将 NSURL
更改为 URL
,我认为你应该可以开始了:
guard let requestURL = URL(string: "someUrl.com")
else{
fatalError("URL can't be found.")
}
在左侧,您发送 URL
对象,但在右侧,它是 NSURL
func dataTask(with url: URL) -> URLSessionDataTask
在Docs
中查看此处在 swift 3 之前,swift 类型和它们在 objc 中的计数器类型之间存在隐式桥接,但在 swift 3 之后,它被删除,你必须在传递时明确说明这种类型,参考here了解更多详情
所以你可以这样做
with: requestURL as URL
或使用URL代替NSURL
问题出在 JSON 模型中,其中有一个名为 URL 的结构,由于该结构,Swift 中的 URL class 被覆盖.因此,当您将 JSON 模型转换为 Swift 时要小心,以检查结构、枚举等名称的 2 倍