Ich entwickle eine iPhone-App für einige süße under Forschung, an der ich gearbeitet habe. Leider bietet meine Schule keine Software Engineering/Design Kurse an, also wenn es um Fragen zu Best Practices in OO Design geht, lese ich viel.Anwendungsdesign und AppDelegate
Mein Dilemma:
Meine Anwendung lädt eine Ansicht (v1), wobei auf Benutzer-Schaltfläche klicken, Controller Klasse v1 eine Aktion Methode ausführt. Diese Aktionsmethode sollte ein Array mit Objekten füllen. Danach führt der Benutzer die Aktion entweder erneut aus oder klickt auf eine andere Registerkarte, um eine andere Ansicht zu laden. Andere Ansichten in der Anwendung verwenden das Array, das von v1 ausgefüllt wurde.
Also, wo sollte dieses Shared Array deklariert werden? Im Moment ist es in der AppDelegate-Klasse, als ich Funktionen ohne GUI getestet habe. Soll ich den AppDelegate Singleton greifen und ihm im v1ViewController Elemente hinzufügen? Sollte es als statisch deklariert werden?
Danke für die Hilfe!
^Buffalo
EDIT:
Follow-up-Frage: Wenn es mit einem Singleton interagieren, was der bessere Weg, um es zu sprechen ist:
[[MyAwesomeSingleton sharedInstance] gimmeSomePizza];
oder
MySingleton *s = [MySingleton sharedInstance];
[s gimmeSomePizza];
Ich denke, was ich frage mich ist, machen Sie die SharedInstance-Methode jedes Mal aufrufen oder y Oder definieren Sie einen Zeiger auf sharedInstance und verweisen Sie dann auf den Zeiger?
Follow-up-Frage: Wenn es mit einem Singleton interagieren, was der bessere Weg, um es zu sprechen ist: [[MyAwesomeSingleton sharedInstance] gimmeSomePizza]; oder MySingleton * s = [MySingleton sharedInstance]; [s gimmeSomePizza]; Ich denke, was ich frage mich ist, machen Sie die SharedInstance-Methode jedes Mal aufrufen oder definieren Sie einen Zeiger auf die sharedInstance und dann den Zeiger verweisen? – Buffalo
Jeder Weg ist in Ordnung. Im Allgemeinen gibt es keinen nachweisbaren Leistungsunterschied zwischen den beiden. Wählen Sie die Methode, die Lesevorgänge für Sie verbessert. –