Frage

Ich habe zwei TabBar -Elemente (Ansichten), die dieselben Daten verwenden. Was ist die beste Lösung, um die Daten zu erhalten?

  1. Machen Sie in jedem Ansichtscontroller zwei Abrufenanforderungen für dieselben Daten.

  2. Stellen Sie eine Abrufanforderung in AppDelegate durch und verwenden Sie die SharedApplication, um die Daten in AppDelegate zu erhalten. Ich kann KVO und Benachrichtigungen verwenden, um die Ansichten zu benachrichtigen, wenn sich die Daten geändert haben.

Wenn ich wählen müsste, würde ich offensichtlich 2 gehen, aber ich möchte sicherstellen, dass ich das Richtige mache.

Kann mir jemand sagen, ob dies der richtige Ansatz ist?

War es hilfreich?

Lösung

Ich bin mir nicht sicher, warum Sie Daten in Ihrem App-Delegierten abrufen würden, es sei denn, es gibt einen guten Grund, es dort zu tun. (Ich kann mir nicht wirklich vorstellen). Wenn Sie Ihre View -Controller über KVO den App -Delegierten beobachten, scheint mir ein schlechter Codegeruch zu sein.

Ich bevorzuge es, Datenmodellklassen (manchmal als Singletons konzipiert) zu erstellen und KVO oder Benachrichtigungen mit meinen View Controllern zu verwenden. Es sorgt für ein saubereres Design.

Hier ist Ein Blog -Beitrag von jemand anderem zu diesem Thema.

Andere Tipps

Ich würde empfehlen, dass Sie so etwas wie eine Singleton -Klasse verwenden. Es gibt ein sehr gutes Beispiel bei Bit-101 . Das Gute an diesem Beispiel ist, dass es sich leicht auf komplexere Fälle erstreckt, z. B. mehr Registerkarten ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top