如何在SwiftUI中获取Google Places数据?
我是SwiftUI的新手。目前正在努力从Google places(Maps)API获取并将照片和地名显示到我的如何在SwiftUI中获取Google Places数据?,swiftui,Swiftui,我是SwiftUI的新手。目前正在努力从Google places(Maps)API获取并将照片和地名显示到我的列表。我知道他们提供了如何操作的解释,但由于我还没有那么丰富的经验,我无法获得仅为Swift提供的代码(非Swift UI)。尝试使用以下方法: struct Response: Codable { var results: [Place] } struct Place: Codable { var placeId: Int var placeName: St
列表
。我知道他们提供了如何操作的解释,但由于我还没有那么丰富的经验,我无法获得仅为Swift提供的代码(非Swift UI)。尝试使用以下方法:
struct Response: Codable {
var results: [Place]
}
struct Place: Codable {
var placeId: Int
var placeName: String
var placePic: String
var placeTime: String
var placePhone: String
var placeLocation: String
}
@State var results = [Place] ()
var body: some View {
List(results, id: \.placeId) { item in
VStack{
Text(item.placeName)
}
}.onAppear(perform: loadData)
}
func loadData(){
guard let url = URL(string: "https://maps.googleapis.com/maps/api/place/photo?parameters") else{
print("Invalid URL")
return
}
let request = URLRequest(url: url)
URLSession.shared.dataTask(with: request){data, responce, error in
if let data = data {
if let decodedResponse = try? JSONDecoder().decode(Response.self, from: data) {
DispatchQueue.main.async {
self.results = decodedResponse.results
}
return
}
}
print("fetch failed: \(error?.localizedDescription ?? "Unknown error")")
}.resume()
}
}
问题:
有没有关于我做错了什么的想法?因为我试图使用SwiftUI在网上搜索一些教程,但没有找到任何教程。请描述什么不起作用。@MikeTaverne很抱歉回答得太晚。总的来说,没有提取任何数据。正如您所看到的,是
列表中的文本(item.placeName)
。但我只是不明白我做错了什么,所以地名不会出现在我的列表中。。没有显示任何数据。您粘贴的代码是否与您尝试的完全相同?您有这一行self.places=decodedResponse.places
,但您的数组名为@State var results=[Place]()
。除非你有另一个名为places
的数组,否则我看不出它是如何编译的。@MikeTaverne编辑过。我在那里有结果
,但没有提取数据。。我还是不明白。我可能把变量命名错了吗?