Frage

Ich bin der Gestaltung eine recht große App und beim Start wird es Sitzungen mit ein paar verschiedenen Servern erstellen. Da sie eine Sitzung erstellen, die in allen Teilen der App verwendet wird, sein etwas, was ich dachte, dass in AppDelegate am besten sein.

Aber das Problem ist, ich brauche die Sitzung Fortschritt auf dem Bildschirm dargestellt werden. Ich plane, am unteren Rand des Hauptmenüs ein UIToolbar zu haben, die ich nicht mit dem Fortschrittsbalken Abdeckung wollen, aber decken die UIView oben it.So so, wie ich es sehe ich es ein paar verschiedene Möglichkeiten tun konnte.

1) Haben die App Delegierten die Sitzungen aufzubauen und den Fortschritt in das Hauptmenü Klasse melden, damit sie es in dem Fortschrittsbalken darstellen kann (werde ich keine Probleme haben, dies zu tun, wenn die Sitzungen in einem separaten Thread erstellt werden?),

2) die App delegieren Anzeige das Hauptmenü (UIView mit einem Bündel von Tasten und UIToolbar) und haben es die Fortschritte verfolgen und anzuzeigen (ich habe noch nie etwas in den App Delegierten angezeigt, aber annehmen, dass Sie dies tun können, aber es ist nicht empfohlen) oder

3) haben die App Delegate nur das Hauptmenü drückt und hat die mainMenu Klasse, um die Sitzungen zu erstellen und die Fortschrittsbalken angezeigt werden.

4) Ich denke, die andere Möglichkeit, es zu tun ist, die Sitzungen in einem Delegierten-Klasse zu erstellen und den Delegaten Satz mainMenu haben, anstatt selbst (AppDelegate), obwohl ich nie etwas anderes verwendet habe, selbst dann so nicht sicher, ob dies funktionieren wird, oder wenn ich in der Lage sein wird, den Faden (durch Aufruf Super vielleicht?) als Lauf im AppDelegate anstatt den Delegierten der Klasse zu schließen.

Wie ich gesagt habe ein bisschen, bevor die Sitzungen in einer Klasse in einem separaten Thread erstellt werden, so dass es die Benutzeroberfläche sperren würde nicht und ich denke, der beste Weg, die ersten ist, aber werde ich Probleme haben, die sie in einem separaten Lauf Gewinde, Rückmeldung an die AppDelegate und dann diese Nachricht an die mainMenu Ansicht Senden?

Ich hoffe, dass alles einen Sinn, lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Jede Information wird geschätzt

Cheers,

War es hilfreich?

Lösung

Vermutlich ist der Zustand der Anschlüsse auf Ihrem App-Funktionalität auswirken. Ich würde wahrscheinlich in Form eines Verbindung Manager Objekt denkt, die Verbindungen zu initiieren Lage ist, behalten ihren Zustand und reagiert, wenn es um ihren Status abgefragt. Auf die gleiche Weise wie ein Singleton-Objekt wird wieder das vorhandene Objekt oder erstellen und zurückgeben ein neues Objekt des keiner vorhanden ist, wird ein Verbindung Manager benötigt nicht einmal eine „make-Verbindung“ Methode „get handelte“ nur - wenn die Verbindung nicht ist öffnen sie können versuchen, es zu machen, so.

Sie erwähnen auch Status auf dem Hauptbildschirm gemeldet werden müssen. Nachdem ein Manager-Objekt das in der Lage ist, Aufgaben von unbestimmter Zeit zu tun (eine Verbindung zu einem Host öffnen, bereit, beschäftigt, weit weg oder einfach nur gebrochen sein können) im Hintergrund und dann berichten Fortschritte zu dem Haupt-Thread so kann die UI sein aktualisiert (denken sie daran, keine UIKit Zugang in sekundären Threads) scheint ideal, und es hält Ihre Ansicht verschieden auch.

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