Я новичок в быстром, поэтому, пожалуйста, обращайтесь со мной как с новичком.
Я следую tutorial, это довольно старый учебник, и он использовал структуру GoogleMap, тогда как я делаю это с помощью pod. В func geocodeAddress
в MapTasks.swift
файле я получаю сообщение об ошибке с именемДополнительный аргумент 'error' in call in swift
дополнительный аргумент «ошибка» в вызове
func geocodeAddress(address: String!, withCompletionHandler completionHandler: ((status: String, success: Bool) -> Void)) {
if let lookupAddress = address {
var geocodeURLString = baseURLGeocode + "address=" + lookupAddress
geocodeURLString = geocodeURLString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
let geocodeURL = NSURL(string: geocodeURLString)
dispatch_async(dispatch_get_main_queue(), {() -> Void in
let geocodingResultsData = NSData(contentsOfURL: geocodeURL!)
let request = NSMutableURLRequest(URL: geocodingResultsData)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
(let data, let response, let error) in
if let _ = response as? NSHTTPURLResponse {
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as? NSDictionary
if error != nil {
print("error=\(error!)")
return
}
if let parseJSON = json {
}
} catch {
print(error)
}
}
}
task.resume()
else {
// Get the response status.
let status = dictionary["status"] as! String
if status == "OK" {
let allResults = dictionary["results"] as! Array<Dictionary<NSObject, AnyObject>>
self.lookupAddressResults = allResults[0]
// Keep the most important values.
self.fetchedFormattedAddress = self.lookupAddressResults["formatted_address"] as! String
let geometry = self.lookupAddressResults["geometry"] as! Dictionary<NSObject, AnyObject>
self.fetchedAddressLongitude = ((geometry["location"] as! Dictionary<NSObject, AnyObject>)["lng"] as! NSNumber).doubleValue
self.fetchedAddressLatitude = ((geometry["location"] as! Dictionary<NSObject, AnyObject>)["lat"] as! NSNumber).doubleValue
completionHandler(status: status, success: true)
}
else {
completionHandler(status: status, success: false)
}
}
})
}
else {
completionHandler(status: "No valid address.", success: false)
}
}
До сих пор я знаю, я получаю эту ошибку из-за diffrent версии стрижа. Учебник Я выполняю написано в старой версии быстра, и я делаю это в новом
вы не привязывают 'ошибки' переменной с помощью метода. Вы просто объявляете переменную внутри метода. Это не сработает. Попробуйте удалить строку «var error?». Если он не работает, и вы выполняете qorking с Swift 2.0, вам нужно будет использовать метод try-try-catch для NSJSONSerialization. –