Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SwiftUI中获取Google Places数据?_Swiftui - Fatal编程技术网

如何在SwiftUI中获取Google Places数据?

如何在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

我是SwiftUI的新手。目前正在努力从Google places(Maps)API获取并将照片和地名显示到我的
列表
。我知道他们提供了如何操作的解释,但由于我还没有那么丰富的经验,我无法获得仅为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编辑过。我在那里有
结果
,但没有提取数据。。我还是不明白。我可能把变量命名错了吗?