• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Attribut Zugriff

bginner

Ingrid Marie
Registriert
13.12.09
Beiträge
266
Hallo zusammen,

ich habe mal zum Testen eine einfach Anwendung geschrieben.
Diese besteht aus zwei Views (Allerdings ist nur der Consolen-Log von Bedeutung).
Von der RootView kann ich problemlos auf Attribute der SecondView zugreifen.
Will ich aber von der SecondView auf Attribute der RootView zugreifen ist alles null.
Und jetzt weiß ich nicht woran es liegt weil die eine richtung geht..aber die andere nicht.


Ich hänge das Projekt mal an.
Wäre toll wenn sich das mal jemand anschauen könnte.
 

Anhänge

dir fehlt zuerst mal ein nib für den MyTableAppDelegate. Korrigiere das mal und melde dich wieder...

Ich glaube, im Weiteren machst du die selben Fehler wie auch schon in deinen anderen Threads. Du erstellst sowie im RootViewController als auch im SecondViewController ein neues Objekt, das dann leer ist. Also ist diese Beschreibung:

Von der RootView kann ich problemlos auf Attribute der SecondView zugreifen.
Will ich aber von der SecondView auf Attribute der RootView zugreifen ist alles null.
Und jetzt weiß ich nicht woran es liegt weil die eine richtung geht..aber die andere nicht.

ganz logisch. Die RootView erstellt ein neues Objekt, füllt dieses. Dieses SecondView hat aber nicht das ursprüngliche RootView in seiner Instanzvariable, sondern ein neues, leeres.

Gruss ppocket

EDIT: Du initialisierst ja nicht mal das Array im RootViewController... das ist dein Fehler! Der Code ist sowieso Mist, wenn ich ganz ehrlich bin... zum Beispiel die Methode initializeArray: was soll das? Solche Dinge gehören ins init!!
 
Zuletzt bearbeitet:
Du initialisierst ja nicht mal das Array im RootViewController
Dies geschieht mit den Zeilen
rootArray = [[NSMutableArray alloc]init];
[rootArray addObject:@"First Root Object"];

Das Hauptproblem war das ich eine neue Instanz des RootViewController erzeugt habe, da hast du recht

Habe es jetzt hinbekommen, allerdings nur über einen herben umweg. habe jetzt den RootViewController als Parameter einer Funktion an den SecondViewController übergeben und danach einem Attribut zugewiesen welches in der SecondViewController. So geht es zwar aber... ist das totaler schwachsinn oder ist die Lösung ok?

Wer sich das anschauen möchte kann sich die neue Version runterladen.
 

Anhänge

Zuletzt bearbeitet:
Das ist in völliger Ordnung so. Wie willst du sonst dem SecondViewController mitteilen, welches Objekt sein Root ist? Ich würde das alles ja direkt in der init machen. Also -initWithRootView: ... oder so :)

Gruss ppocket