这是代码。在其他情况下,我使用它也很好,但是在使用数组的情况下,我一直没有得到结果。数据解析得很好,我可以从关闭处将其打印到控制台中。但是,当我尝试将其传递到View Controller中时,它并没有到达那里。
class AllPointRU {
// var allPointsDict: [String:AnyObject] = [:]
var _lngs: [Double]!
var _lats: [Double]!
var lngs: [Double] {
if _lngs == nil {
_lngs = [1.1]
}
return _lngs
}
var lats: [Double] {
if _lats == nil {
_lats = [1.1]
}
return _lats
}
func downloadAllPointsRU(completed: DownloadComplete) {
Alamofire.request(CURRENT_POINTS_RU).responseJSON { response in
if response.data != nil {
let allPointsRU = response.result.value!
if let allLat = allPointsRU as? [[String : AnyObject]] {
let latitudes = allLat.map({ $0["lat"] as! Double})
self._lats = latitudes
}
if let allLng = allPointsRU as? [[String : AnyObject]] {
let longitudes = allLng.map({ $0["lng"] as! Double})
self._lngs = longitudes
}
}
}
completed()
}
}
答案 0 :(得分:0)
由于它具有异步api调用,因此您要么需要等待将要传递到另一个视图控制器的响应,要么可以关闭用户以捕获该值,然后将这些值传递给另一个视图控制器。
在获得api响应之前,您可能正在将值传递给另一个视图控制器,这可能是获得nil的原因。