Ich sammelte JSON
Daten von einer API und kann mein Array (Klasseninstanzvariable) initialisieren, aber nach dem Block werden Daten aus Array zerstört. Wie kann ich Daten aus dem Aufgabenblock zurückgeben, die zur Initialisierung meines Arrays verwendet werden können?Wie das Ergebnis von NSURLRequest zurück an die Klasse
override func viewDidLoad() {
// var movies=[Movie]()
let requestURL: NSURL = NSURL(string: "https://yts.ag/api/v2/list_movies.json")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(urlRequest) {
(data, response, error) -> Void in
let httpResponse = response as! NSHTTPURLResponse
let statusCode = httpResponse.statusCode
if (statusCode == 200) {
print("File downloaded successfully.")
do {
let jsonYts = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)
let jsonDataTag = jsonYts["data"]
let jsonMovie = jsonDataTag!!["movies"]!
let movies = [Movie].fromJSONArray(jsonMovie as! [JSON])
// self.moviesList = movies as! [Movie] // this is my array. I want to add data to it
for data in self.moviesList {
// print(data.title)
}
} catch {
}
}
}
task.resume()
}
Beispiel in meiner Antwort hier nehmen: http://stackoverflow.com/questions/37340967/json-parsing-swift-array-has-no-value-outside-nsurlsession – Moritz