Я пытаюсь получить значения из ответа JSON в ниже формат, но я получаю сообщение об ошибке на Alamofire.request
:Кастинг JSON для NSData в Alamofire
не может ссылаться на «responseJSON» со списком аргументов типа '((,, ,) ->)'
Я уверен, что он должен сделать что-то с переменным инициированным перед тем Alamofire.request()
. Также я уверен, что возвращение будет nil
, как я могу это исправить?
func annotations() -> [TestAnnotation] {
var annotations: [TestAnnotation] = []
var points: NSDictionary = [:]
var json: NSData?
Alamofire.request(.GET, "http://192.168.0.10/test/globe.php", parameters:nil, encoding: .JSON) .responseJSON
{
(request, response, data, error) in
json = JSON((data as? NSData)!)
}
for point in json["glimps"] as! NSArray {
let lat = (point as! NSDictionary)["latitude"] as! CLLocationDegrees
let lon = (point as! NSDictionary)["longitude"] as! CLLocationDegrees
let gid = String(stringInterpolationSegment: (point as! NSDictionary)["id"])
///
let coordinate1 : CLLocationCoordinate2D = CLLocationCoordinate2DMake(lat, lon)
let a1: TestAnnotation = TestAnnotation(coordinate: coordinate1, title: gid)
annotations.append(a1)
}
return annotations
}
Как я могу использовать json, вне этой области, я продолжаю получать нуль. – MasterWizard
Проблема в том, что вызов асинхронный, как я уже говорил вам, вам нужно сделать как обработчик, чтобы получить JSON и работать с ним в области. –