В моем приложении пользователя краны на маркере, и мне нужно позвонить в веб-службу, чтобы получить информацию для показа. Я использую NSURLSession.dataTaskWithRequest, а затем вызываю dispatch_async в главной очереди, чтобы показать пользователю маркер. Но я получаю ошибку, пытаясь передать аргументы в dispatch_asyncDispatch_async после dataTaskWithRequest
коды является следующим
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
let request = NSMutableURLRequest(URL: NSURL(string: "http://78.27.190.58:3300/api/get_location_ratings")!)
request.HTTPMethod = "POST"
let postString = "org_id=\(marker.userData["orgId"] as! Int)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
var json = JSON(data: data!)
var rating = json["results"]["avg_stars"].doubleValue
dispatch_async(dispatch_get_main_queue()) { (mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! in
self.window = NSBundle.mainBundle().loadNibNamed("infoWindow", owner: self, options: nil).first! as! infoWindow
self.window?.name.text = marker.title
self.window?.adress.text = marker.snippet
self.window?.stars.image = UIImage(named: "\(showStars((marker.userData["Rating"] as! NSString).doubleValue))")
self.window?.rating.text = String((marker.userData["Rating"] as! NSString).doubleValue)
return window
}
}
task.resume()
}
Ошибка
Что я делаю неправильно?
Проверьте мой новый ответ. Мой предыдущий ответ неправильный. –