Neu hier und direkt mal zu den Basics...

  • Neu hier und direkt mal zu den Basics...

    Ich komme aus der C++ Welt, jedoch bin ich jetzt kein Guru darin!

    In der Windows-Umgebung folgendes Beispiel: beim Start wird eine Instanz einer Fensterklasse (frmMainWindow) erzeugt, geladen und angezeigt. In dieser Klasse erzeuge ich auch eine Instanz eines Datenmoduls um nötige Daten aus einer Datenbank zu laden. Ich kann dynamisch ein neues Fenster erzeugen. In genau diesem Fenster kann ich ohne weiteres auf mein MainWindow per der zu Beginn erzeugten Instanzvariable frmMainWindow zugreifen. Also frmMainWindow->Datenmodul usw.!

    Diesbezüglich komme ich hier in XCode nicht klar...

    Ich hab meine AppDelegate, erzeuge dort ein Klassenobjekt für Datenbankzugriffe und setzte die ein oder andere Variable in der AppDelegate. Wie komme ich aus einem View nun an diese Variable geschweige denn an mein Objekt für die Datenbankzugriffe??? Mir fehlt irgendwie die Instanzvariable der AppDelegate beispielsweise, so dass ich über [AppDelegat Variable] meine Werte lesen kann ...

    Ich hoffe mich verständlich ausgedrückt zu haben und da ich mich erst neu mit Apple und Co beschäftige und seit Tagen mir der Kopf brummt ?( bitte ich um schnelle Hilfe!
    Irgendwo hab ich da ein Blackout!
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!
  • RE: Neu hier und direkt mal zu den Basics...

    Die Applikation ist ein Singleton. Wie bereits Michael (wie immer) richtig ausführt, gibt es bei Singletons eine Methode, um an die Instanz zu kommen. Bei NSApplication heißt die -sharedApplication.

    Außerdem kennt jeder, der ein Delegate unterstützt sein Delegate. Daher existiert eine Methode -delegate.

    Auf die Instanzvariablen greift man mittels Accessoren zu.

    Darf ich fragen, ob du etwas Einleitendes als Lektüre hast? Das wird sonst schwer.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: Neu hier und direkt mal zu den Basics...

    Original von major_pb
    Oder hier noch einfacher mit weniger Code über NSApp, der globalen Variable, anstelle von [NSApplication sharedApplication]

    Das ist nicht verallgemeinerungsfähig. Das Singleton-Pattern indessen schon.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: Neu hier und direkt mal zu den Basics...

    Der Code ist nicht unnötig, weil er das Singleton-Pattern beachtet. Es ist häufig möglich, dieses pattern zu umgehen. Beliebt ist etwa so etwas:

    Quellcode

    1. [self setUserDefualts:[NSUserDefautls standardUserDefaults]];

    Das ist schlicht eine Verletzung des Singleton-Patterns. Kann gut gehen, geht meistens sogar gut, irgendwann fällt man damit jedoch auf die Fresse. (Nein, bis 10.5 fällt man bei NSApp damit nicht auf die Fresse, weil es dokumentiert ist. Das ändert aber nichts am defekten Design.)
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • RE: Neu hier und direkt mal zu den Basics...

    Original von Tom9811
    Die Applikation ist ein Singleton. Wie bereits Michael (wie immer) richtig ausführt, gibt es bei Singletons eine Methode, um an die Instanz zu kommen. Bei NSApplication heißt die -sharedApplication.

    Außerdem kennt jeder, der ein Delegate unterstützt sein Delegate. Daher existiert eine Methode -delegate.

    Auf die Instanzvariablen greift man mittels Accessoren zu.

    Darf ich fragen, ob du etwas Einleitendes als Lektüre hast? Das wird sonst schwer.


    Naja, ich habe mir so einiges im Netz angelesen, ein paar Grundlagen zur Notation usw. !
    Hauptsächlich hab ich mich mit dem Buch "Beginning iPhone Development" beschäftigt und so ziemlich alles durchgearbeitet. So richtig schlau wird man hinsichtlich delegates nur wenn man's mehrfach durchmacht und hin und wieder woanders ne gute Erläuterung bekommt.
    Das Problem was ich hatte bezog sich aber nicht auf das iPhone sondern einfach Cocoa & Co, wenn ich das mal so Leihenhaft sagen darf :o)
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!