• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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