Zugriff auf ein NSString eines NSObject, welches sich in einem NSArray befindet

  • Zugriff auf ein NSString eines NSObject, welches sich in einem NSArray befindet

    Hallo zusammen,

    nachdem nun die erste Klasse ausgelagert wurde, stellt sich mir folgende Frage: Wie kann ich auf die mir zurückgelieferte Datenstruktur lesend bzw. schreibend zugreifen?

    z.B. auf das zweite NSObject (1): NSString *zweiteKategorie = ???den Wert "Klasse6" auslesen bzw. an dieser Stelle den geänderten Wert ablegen?

    Kann mir da jemand weiterhelfen?

    Die Struktur sieht so aus:

    myPaths NSArray * @"3 objects" 0x0000600000240cc0
    [0] XMLDataVT * 0x60000005ec60 0x000060000005ec60
    NSObject NSObject
    _vtKategorie NSString * @"Klasse5" 0x000060000007f540
    _vtSubKategorie1 NSString * nil 0x0000000000000000
    _vtSubKategorie2 NSString * nil 0x0000000000000000
    _vtSubKategorie3 NSString * nil 0x0000000000000000
    [1] XMLDataVT * 0x600000240c30 0x0000600000240c30
    NSObject NSObject
    _vtKategorie NSString * @"Klasse6" 0x000060000007f5c0
    _vtSubKategorie1 NSString * @"Wellcome " 0x000060000007f600
    _vtSubKategorie2 NSString * nil 0x0000000000000000

    _vtSubKategorie3 NSString * nil 0x0000000000000000

    Vielen Dank.
  • Hängt sicherlich von Deiner Implementierung der XMLDataVT Klasse ab.

    Arrayinhalte kannst Du gezielt über ihren Index anspringen ([array objectAtIndex:1]) oder indirekt iterieren. (for( XMLDataVT * dataVT in array ) {})
    Ob und wie Du dann die Inhalte manipulierst, hängt in erster Linie von den Objekten hab.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Also in der XMLDataVT befinden sich nur Variablen. Sieht wie folgt aus:

    XMLDataVT.h
    #import <Foundation/Foundation.h>

    @interface XMLDataVT : NSObject

    @property (nonatomic, strong) NSString *vtKategorie;
    @property (nonatomic, strong) NSString *vtSubKategorie1;
    @property (nonatomic, strong) NSString *vtSubKategorie2;
    @property (nonatomic, strong) NSString *vtSubKategorie3;

    @end

    Die o.g. Anweisung von Dir habe ich so umgesetzt: NSString *myFirstKategorie = [myPaths objectAtIndex:0];
    Die liefert mir die richtige ID. Soweit okay, nur wenn ich versuche auf den Inhalt zuzugreifen, bricht die App ab.
  • Danke Marco.

    Verzweifle heute noch. ?(

    Der folgende Befehl: NSString * firstCategory = [[myPaths objectAtIndex:0] valueForKey:@"vtKategorie"];
    führt zur selben Fehlermeldung bzw. zum Abbruch. Völlig egal auf welchen Key ich zugreife.

    [<XMLDataVT 0x60000004a9b0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key vtKategorie.
    0 CoreFoundation 0x00007fff8e93525c __exceptionPreprocess + 172
    1 libobjc.A.dylib 0x00007fff8cf25e75 objc_exception_throw + 43
    2 CoreFoundation 0x00007fff8e934e09 -[NSException raise] + 9
    3 Foundation 0x00007fff95a2376e -[NSObject(NSKeyValueCoding) valueForUndefinedKey:] + 235
    4 Foundation 0x00007fff9593aa86 -[NSObject(NSKeyValueCoding) valueForKey:] + 381
    5 Vocabeltrainer 0x000000010000670f +[DbHandle bibliotheksMenuItemsKategorie:subKategorie1:subKategorie2:subKategorie3:] + 2495
    ...

    Die Variablen sind doch in definiert bzw. deklariert oder übersehe ich hier etwas?
    [b][/b]