• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

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

  • MyTable..zip
    24,2 KB · Aufrufe: 89

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
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:

bginner

Ingrid Marie
Registriert
13.12.09
Beiträge
266
Du initialisierst ja nicht mal das Array im RootViewController
Dies geschieht mit den Zeilen
rootArray = [[NSMutableArray alloc]init];
[rootArray addObject:mad:"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

  • MyTable_neu..zip
    24,3 KB · Aufrufe: 50
Zuletzt bearbeitet:

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
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