【发布时间】:2015-08-04 05:03:48
【问题描述】:
我在返回注释上得到一个空值,我确定这是因为异步范围,我已经尝试了一切来获取
var annotations: [TestAnnotation] = []
返回值,但我不能。循环正确地附加了 makeRequest 范围内的值。
func makeRequest(url : String, params : [String : String]?, completionHandler: (responseObject: JSON?, error: NSError?) -> ()) -> Request? {
return Alamofire.request(.GET, url, parameters: params, encoding: .URL)
.responseString { request, response, responseBody, error in completionHandler(
responseObject:
{
// JSON to return
var json : JSON?
if let response = responseBody {
// Parse the response to NSData
if let data = (response as NSString).dataUsingEncoding(NSUTF8StringEncoding) {
json = JSON(data: data)
}
}
return json
}(), error: error)
}
}
func annotations() -> [TestAnnotation] {
var annotations: [TestAnnotation] = []
var points: NSDictionary = [:]
self.makeRequest("http://192.168.0.10/test/globe.php", params: nil) { json, error in
if let data = json!.rawData() {
let json = JSON(data: data)
for var i = 0; i < json["venues"].count; i++
{
let lat = (json["venues"][i]["latitude"]).doubleValue as CLLocationDegrees
let lon = (json["venues"][i]["longitude"]).doubleValue as CLLocationDegrees
let venuesid = (json["venues"][i]["id"]).stringValue as String
///
let coordinate1 : CLLocationCoordinate2D = CLLocationCoordinate2DMake(lat, lon)
let a1: TestAnnotation = TestAnnotation(coordinate: coordinate1, title: glimpid)
annotations.append(a1)
}
}
}
return annotations
}
【问题讨论】:
-
注解函数返回值为空?
-
是的,如果不清楚,抱歉
标签: swift asynchronous alamofire