Normalerweise möchten Sie Ihre Daten aus dem View-Controller heraushalten, und Sie möchten Ihre API-Aufrufe unbedingt aus dem View-Controller heraushalten. Erstellen Sie ein "Modell" -Objekt, das mit der API kommuniziert. Der einfachste Weg dazu ist, das Modell zu shared singleton zu machen. (Es gibt einige Gründe, Singletons hier nicht zu verwenden, aber wenn Sie neu sind, würde ich es absolut so machen.)
Um die Dinge einfach zu halten, empfehle ich, NSNotification
zu verwenden, um das Modell ankündigen zu lassen, wenn Daten vorhanden sind geändert. Der View-Controller beobachtet diese Benachrichtigung und ruft bei der Veröffentlichung reloadData
auf, um sich selbst zu aktualisieren. Alle Datenquellenmethoden (numberOfRowsInSection
, usw.) sind einfache Aufrufe an das Modell.
Dies ist die traditionelle Art und Weise, Cocoa-Apps zu erstellen, und die Art, wie ich Menschen den Start empfehle. Wenn Sie mehr erfahren, werden Sie wahrscheinlich andere Tools finden, die besser als NSNotification
sein können, und Sie können andere Muster lernen, die Singletons ersetzen. Und Sie werden definitiv lernen bessere Möglichkeiten, Ihre Tabelle als reloadData
zu aktualisieren, aber das wird Ihnen eine gute, starke Grundlage zu verbessern.
Einer der besseren Beispielcode, IMO, der das alles zeigt, ist The Elements. Ich empfehle sehr, es zu studieren. Es ist in ObjC, aber es ist sehr klar geschrieben, und das Lernen, ObjC zu Swift zu konvertieren, ist eine Kernkompetenz von Cocoa-Entwicklern. (Die Elemente sprechen nicht mit einem Server, aber sie zeigen das von Ihnen benötigte Model View Controller-Muster.)
Normalerweise würden Sie den Ladevorgang in 'viewDidLoad' initiieren und dann die Tabelle aktualisieren, sobald der Ladevorgang abgeschlossen ist. – Paulw11
@ Paulw11 Ich werde es einen Versuch geben danke – sarah