【发布时间】:2016-12-15 18:05:36
【问题描述】:
我正在使用循环并对 CLGeocoder 进行 API 调用。 API 被调用了正确的次数,但是对于第一个 API 调用,completionHandler 只返回一次,然后它不会为其余的调用返回任何内容。
dispatch_async(dispatch_get_main_queue())
{
for shop in self.shopsList {
let shopAddress = shop.address
self.geocoder.geocodeAddressString(shopAddress, completionHandler: { (placemarks, error) in
if let error = error {
print(error)
return
}
if let placemarks = placemarks where placemarks.count > 0 {
if let location = placemarks.first?.location {
print("The longitude: \(location.coordinate.longitude)")
print("The latitude: \(location.coordinate.latitude)")
}
}
})
}
self.spinner.dismiss()
self.categoryTableView.dataSource = self
self.categoryTableView.delegate = self
self.categoryTableView.reloadData()
}
其余的调用根本不返回任何内容,甚至不输入任何 if 语句。谁能告诉我我做错了什么?
我尝试在 for 循环的末尾添加sleep(2),但它仍然只返回一次
【问题讨论】:
标签: ios swift api core-location