2016-09-02 3 views
0

Ich habe eine kleine Frage. Ich möchte eine Funktion wie diese haben:Beobachten Sie die Fertigstellung von Json laden

func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) { 
    let request = NSMutableURLRequest(URL: targetURL) 
    request.HTTPMethod = "GET" 

    let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration() 

    let session = NSURLSession(configuration: sessionConfiguration) 

    let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in 
     dispatch_async(dispatch_get_main_queue(), {() -> Void in 
      completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error) 
     }) 
    }) 

    task.resume() 
} 

ich auf appcoda.com gefunden, aber mit der Möglichkeit, etwas zu tun, wenn die Daten, die eine fertige Analyse geladen wird. Etwas wie:

UIView.animateWithDuration(3.0, delay: 0, options: .CurveEaseIn, animations: {() -> Void in 

     }, completion: {finished in 
      self.functionXY() 
    }) 

Mein gesamte Plan ist json Daten von zwei bestimmten Seiten, der zweite json Link erzeugt aus den Daten aus dem ersten json zu laden. Also ich was eine HTTP-Anfrage zu starten, nachdem die erste fertig ist. Wenn die zweite fertig ist, möchte ich eine Funktion aufrufen, die den View from lousescreen in mainView ändert.

Antwort

-1

Statt einer einfachen Anfrage können Sie sich auf Alamofire oder eine andere http/post-Anfrage Open-Source-Bibliotheken verlassen.
Andernfalls können Sie NSURLSessionDataTask/NSURLSessionDownloadTask mit entsprechenden Abschluss-Handler

Hoffnung verwenden diese

0

Sie können einfach die Animation rufen Code

func aFunction() { 
    performGetRequest(yourURL) { (data, HTTPStatusCode, error) in 
     if error == nil { 
      self.animate() 
     } 
    } 
} 

func animate() { 
    UIView.animateWithDuration(3.0, delay: 0, options: .CurveEaseIn, animations: {() -> Void in 

    }, completion: {finished in 
     self.functionXY() 
}) 
im Abschluss-Handler von performGetRequest: helfen kann
Verwandte Themen