Aufgrund einiger Probleme versuche ich Alamofire zu verwenden, hier habe ich eine Alamofire, die eine Online-JSON-Datei erhält, die vier Ergebnisse erhält, sie in der Picker-Ansicht platziert und aktualisiert, sodass sie angezeigt werden können oben. Der Code funktioniert hier perfekt:Picker-Ansicht wird nicht aktualisiert
Alamofire.request(.GET, "https://example.com/json.json", parameters: ["foo": "bar"])
.responseJSON { response in
print(response.request) // original URL request
print(response.response) // URL response
print(response.data) // server data
print(response.result) // result of response serialization
if let JSON = response.result.value {
self.mypickerview.delegate = self
self.mypickerview.dataSource = self
self.pickerData = [JSON["One"] as! String, JSON["Two"] as! String, JSON["Three"] as! String, JSON["Four"] as! String]
self.mypickerview.delegate = self;
}
}
aber das Problem ist, dass mit diesem Code, während es die Daten erfolgreich zu bekommen verwaltet, ist es nicht in der Picker Ansicht, die zeigt:
// Setup the session to make REST GET call. Notice the URL is https NOT http!!
let postEndpoint: String = "https://example.com/json.json"
let session = NSURLSession.sharedSession()
let url = NSURL(string: postEndpoint)!
// Make the POST call and handle it in a completion handler
session.dataTaskWithURL(url, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
// Make sure we get an OK response
guard let realResponse = response as? NSHTTPURLResponse where
realResponse.statusCode == 200 else {
print("Not a 200 response")
return
}
// Read the JSON
do {
if let ipString = NSString(data:data!, encoding: NSUTF8StringEncoding) {
// Print what we got from the call
print(ipString)
// Parse the JSON to get the data
let jsonDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
let One = jsonDictionary["One"] as! String
let Two = jsonDictionary["Two"] as! String
let Three = jsonDictionary["One"] as! String
let Four = jsonDictionary["One"] as! String
self.mypickerview.delegate = self
self.mypickerview.dataSource = self
self.pickerData = [One, Two, Three, Four]
self.mypickerview.delegate = self;
}
} catch {
print("bad things happened")
}
}).resume()
Was könnte Das Problem mit dem zweiten Code, der verhindert, dass die Optionen in der Auswahlansicht angezeigt werden?
Sind Sie sicher, dass Sie sich in der Hauptwarteschlange befinden? –