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

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

  • 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]