Ivar wird nicht übergeben?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ivar wird nicht übergeben?

    Hallo,

    ich habe einen ArrayController (leistungsController), der das Array "leistungsliste" verwaltet und an eine TableView gebunden ist. Das Array besteht aus Objekten der Klasse LeisungsBasis, welche Propertys wie Datum, Zeit, Leistungsart... beinhaltet.
    Bei Hinzufügen eines neuen Objekt wird u.a. der Code

    Quellcode

    1. LeistungBasis *l=[leistungController newObject];[leistungController addObject:l];

    ausgeführt, und damit der Code :

    Quellcode

    1. - (void) setLeistungsliste:(NSMutableArray *) a{
    2. if (a== leistungsliste)
    3. return;
    4. [a retain];
    5. [leistungsliste release];
    6. leistungsliste = a;
    7. saveAndLoad *sl=[[saveAndLoad alloc] init];
    8. [sl save:leistungsliste];
    9. [sl release];
    10. }
    Alles anzeigen

    saveAndLoad ist eine Klasse die nach Hinzufügen eines neuen Objekts u.a. das Speichern des übergebenen Arrays als Textdatei übernimmt.
    Klappt auch ordnungsgemäß.

    Über Delegates von NSTableView wird aber eine zweite Methode aufgerufen, die auf stattgehabte Änderungen reagiert:

    Quellcode

    1. - (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor{
    2. saveAndLoad *sl=[[saveAndLoad alloc] init];
    3. [sl save:leistungsliste];
    4. [sl release];
    5. return YES;


    Dies funktioniert leider nicht- leistunsliste besteht immer aus 0 Objekten obwohl es doch eine Instanzvariable (@property, Setter- und Gettermehtode implementiert) ist.
    Auch Codes wie [sl save:[self leistungsliste]] (um definitiv die Instanzvariable aufzurufen) liefern das gleiche Ergebnis.

    Beide Methoden befinden sich so wie auch "leistungsliste" in der selben Klasse. Eine Zugriffsbeschränkung kann es somit eigentlich nicht sein. Mit der ersten Methode klappt es, mit der zweiten nicht.
    Mir ist nicht klar, warum in der zweiten Methode kein richtiger Zugriff auf leistungsliste besteht.
    Kann mir jemand helfen?[Blockierte Grafik: http://www.osxentwicklerforum.de/wcf/images/smilies/confused.png]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AnEs ()