我有一个函数getZipCodefromURL
,从气象数据服务检索数据,解析JSON,并分类信息到我的array
检索填充阵列。在我的应用程序中,我设置了一个文本框,一个按钮和标签,以便用户可以在文本框中输入他或她的邮政编码,然后点击按钮,这些按钮将更新标签并提供有关该地区天气的信息。无法从功能
我认为我面临的问题来自我的功能设置方式或我称之为的方式。在我的enterButton
函数中,我想从getZipCodeinURL
中检索我的填充数组,但是当我调用它时,它将返回空值,并且我无法对其进行索引。到目前为止,这是我:
var array: [String] = []
func getZipCodeinURL(zipCode: String) -> NSArray{
let urlPath = "http://api.openweathermap.org/data/2.5/weather?zip=\(zipCode),us&units=imperial"
let url: NSURL = NSURL(string: urlPath)!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
if error != nil {
// If there is an error in the web request, print it to the console
println(error.localizedDescription)
return
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
if err != nil {
// If there is an error parsing JSON, print it to the console
println("JSON Error \(err!.localizedDescription)")
return
}
let json = JSON(jsonResult)
var temp = json["main"]["temp"].stringValue
var humidity = json["main"]["humidity"].stringValue
var pressure = json["main"]["pressure"].stringValue
self.array = [temp, humidity, pressure]
})
task.resume()
return array
}
@IBOutlet weak var pressureLabel: UILabel!
@IBOutlet weak var humidityLabel: UILabel!
@IBOutlet weak var tempLabel: UILabel!
@IBAction func enterButton(sender: AnyObject) {
var zipCode = zipcodeText.text
var weatherArray: NSArray = getZipCodeinURL(zipCode)
var temperature: AnyObject = weatherArray[0]
}
有谁知道我怎样才能正确地检索我的功能我人口稠密array
到我enterButton
功能?
您需要针对互联网通话研究异步呼叫。 – zaph