Я использовал API Google для получения данных о ближайших местоположениях. Я выполнил вызов API и также получил правильные результаты (ответ JSON).
Это класс модели, который я создал для анализа ответа JSON:
class Locations: Codable {
var locationName: String?
var locationAddress: String?
enum CodingKeys: String, CodingKey {
case locationName = "name"
case locationAddress = "vicinity"
}
required init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
locationName = try? values.decode(String.self, forKey: .locationName)
locationAddress = try? values.decode(String.self, forKey: .locationAddress)
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(locationName, forKey: .locationName)
try container.encode(locationAddress, forKey: .locationAddress)
}
}
< /code>
В приведенном выше классе я упомянул только две переменные, а именно местоположение и адрес, так как я хочу отобразить только эти два значения на моем таблице. < /p>
Но после получения результатов, в этой части ниже я не могу зайти внутрь, если
Я использовал API Google для получения данных о ближайших местоположениях. Я выполнил вызов API и также получил правильные результаты (ответ JSON). Это класс модели, который я создал для анализа ответа JSON: [code]class Locations: Codable {
var locationName: String? var locationAddress: String?
enum CodingKeys: String, CodingKey { case locationName = "name" case locationAddress = "vicinity"
} } < /code> В приведенном выше классе я упомянул только две переменные, а именно местоположение и адрес, так как я хочу отобразить только эти два значения на моем таблице. < /p> Но после получения результатов, в этой части ниже я не могу зайти внутрь, если [/code] условие: [code]WebServiceClient.shared.getNearbyLocationsList(withParameters: parameters, lattitude: lattitude, longitude: longitude) { [weak self] (isSuccess, result) in guard let `self` = self else { return } if isSuccess, result != nil { print("Successfully fetched nearby locations!")
//I have data in the result but it is not going into the if-let condition. if let productService = result?["results"] as? [[String: Any]] , let jsonData = try? JSONSerialization.data(withJSONObject: productService as Any, options: []), let locationsList = try? JSONDecoder().decode([Locations].self, from: jsonData) { self.locationsList = locationsList
} < /code> Это небольшой фрагмент ответа API: < /p> { "html_attributions" : [], "next_page_token" : "CsQEQAIAAG….”, "results" : [ { "geometry" : { "location" : { "lat" : 19.07456, "lng" : 74.86545 }, "viewport" : { "northeast" : { "lat" : 19.2456, "lng" : 74.98456 }, "southwest" : { "lat" : 18.8564, "lng" : 76.7745645 } } }, "icon" : “sdf.png", "id" : "2e66c82c2e8d7149bd7e026089ff5dedb8346bd5", "name" : "Mumbai", "photos" : [ { "height" : 2304, "html_attributions" : [ "\u003ca href=\"https://maps.google.com/maps/contrib/111225135501811810933/photos\"\u003eRamkrishna Pudasaini\u003c/a\u003e" ], "photo_reference" : "CmRZAAAA4WHsIxpFh…”, "width" : 3456 } ], "place_id" : "Chbdfbdfb_tpF0", "reference" : "ChIJbnfgh54_tpF0", "scope" : "GOOGLE", "types" : [ "locality", "political" ], "vicinity" : "Mumbai" } ], “status” : “OK” } [/code] И из этого ответа API я хотел получить данные, связанные с именем и местоположением.