2016-09-21 4 views
0

Ich bin neu in Alamofire und Swift, also bitte nicht genervt, wenn meine Frage dumm ist.So aktualisieren Sie mit Alamofire

Recht, jetzt, dass aus dem Weg ist, lassen Sie sich auf die Abfrage erhält ich habe ...

Ich bin Daten aus einer JSON URL bekommen und dann mit JSON Parsen. Ich bin die Daten mit dieser Methode das Abrufen („url“ zugeordnet ist!)

Alamofire.request(.GET, url) 

Dann bin ich bestimmte Teile der Daten auf UI-Elemente, wie dies zugewiesen;

self.something.text = json["Something"]["Something"]["Something"][0]["Something"].string 

Das funktioniert gut.

Ich möchte eine Anleitung zur Aktualisierung, da sich die Daten von der URL alle 2-5 Minuten ändern.

Vorzugsweise möchte ich es Pull-Up zu aktualisieren, aber alles ist in Ordnung, Schaltfläche Aktualisieren oder automatische Aktualisierung.

Vielen Dank für das Lesen meiner Frage, ich freue mich über alle Antworten/Feedback.

Wenn Sie möchten, dass ich etwas mehr von meinem Code hinzufüge, werde ich es gerne tun!

Antwort

0

setzen Sie Ihre Alamofire Code in eine Funktion zum Beispiel

func refreshUI() { 
    //Alamofire.request........ 
} 

dann diese Funktion aufrufen, wenn Sie die Benutzeroberfläche aktualisieren benötigen, beispielsweise mit einem Timer, der diese Funktion i alle 5 Minuten ruft

Ich denke, es ist besser zu praktizieren, wenn Sie serverseitigen Code schreiben, damit Ihr Server remote Benachrichtigungen senden kann, wenn Änderungen auftreten.

0

Sie erwähnen die Verwendung von Pull-up-Refresh. Also nahm ich an, dass Sie eine UITableViewController oder tableView in UIViewController haben.

Dann ist es wirklich einfach, mit einem UIRefreshController einzurichten. Rufen Sie diese Funktion in Ihrem viewDidLoad

func setupRefreshControl() { 
    let refreshControl = UIRefreshControl() 
    refreshControl.attributedTitle = NSAttributedString(string: "Pull to Refresh"); 
    refreshControl.addTarget(self, action: #selector(self.refreshIsRequested), forControlEvents: UIControlEvents.ValueChanged) 
    tableView.addSubview(refreshControl) 
} 

func refreshIsRequested() { 
    //Alamofire.request(.GET, url)... your alamofire request here 
    //Upon completion call self.refreshControl.endRefreshing() 
}