forループとGoogle Places APIを使用して、以下のようなPlace IDの配列を検索しようとしています。コードにはほとんどエラーがありませんが、クロージャーや上記のエラーのいずれかの問題があります。私はそれがこの瞬間にあるのか分かりません - どんな支援も大いに評価されるでしょう!あなたは結果の配列を初期化されていないため、初期化される前にクロージャによって取り込まれた変数(結果)
let mexican = ["ChIJM8S9ACvoIogRmzYiLgzlP_g",
"ChIJwSHwoNTpIogRyElYj-kHC14",
"ChIJDWRMYifoIogR7S6U4tryodY",
"ChIJqSVd6yfoIogRmTgBSoO4Z0k",
"ChIJLacWlinoIogRVGYk-bZbGUE",
"ChIJSUC9S2zCIogRTKyiW0q_6tI"]
override func viewDidLoad() {
super.viewDidLoad()
placesClient = GMSPlacesClient.shared()
var place: [String]
var results: Array<Any>
switch index.row
{
case 0 :
place = international
case 1 :
place = american
default :
place = mexican
}
for id in place
{
placesClient.lookUpPlaceID(id, callback: { (result, error) -> Void in
if let error = error {
print("lookup place id query error: \(error.localizedDescription)")
return
}
guard let result = result
else
{
print("No place details for \(id)")
return
}
results.append(result)
})
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
の他の部分であなたが結果を初期化する必要があり、この結果が必要だと思うので、この文のVaRの結果= [任意]を(使用、クロージャ内でこの変数を使用します) var結果の代わりに:配列とその動作を参照してください –
3stud1ant3