2012-04-04 8 views
1

Ich habe eine NSMutableArray *myArray, die das Ergebnis einer ordnungsgemäß gefilterten .xml-Datei ist, mit TouchXML.NSArray Elemente aus geparsten .xml Datei nicht auf dem iPhone zugänglich, mit TouchXML

Ich möchte nur alle Elemente mit Schlüssel name extrahieren und speichern Sie dann in einer separaten NSMutableArray, aber mein letzten NSMutableArray *namesList ist nicht zugänglich, mein iPhone App sofort abstürzt, weil es nur den letzten Aufzählungs Zeichenfolge enthält und nicht das gesamte Array .

Hier ist der Code:

NSMutableArray *namesList = [[NSMutableArray alloc] initWithArray:myArray copyItems:YES]; 

     int i; 
     for (i = 0; i < [myArray count]; i++) 
      { 
      namesList = [[myArray objectAtIndex:i] objectForKey:@"name"]; 
      NSLog(@"All Names: %@", namesList);  
      } 

      NSLog(@"First Name: %@", [namesList objectAtIndex:0]); <-- crashing line 

Und hier ist die NSLog:

-[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x6a42540 
2012-04-04 10:34:07.882 Sections[3610:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x6a42540' 

Antwort

2

sollten Sie in der Lage sein, dies zu tun:

NSMutableArray * namesList = [NSMutableArray alloc] init]; 

for(i = 0; i < [myArray count]; i++) 
{ 

    NSString * tempString = [NSString stringWithString:[[myArray objectAtIndex:i] objectForKey:@"name"]]; 
    [namesList addobject:tempString]; 
} 

NSLog(@"First Name: %@", [namesList objectAtIndex:0]); 
+0

Großartig! Vielen Dank! Das hat mein Problem gelöst! – Winston

2

[[myArray objectAtIndex:i] objectForKey:@"name"]; gibt ein NSString Objekt und nicht ein anderes Array daher können Sie keine objectAtIndex versenden. Überprüfen Sie die Struktur Ihrer Arrays.

+0

Vielen Dank für Ihre Antwort. Dann habe ich eine neue Frage: Wie speichere ich jeden NSString in einem neuen NSArray? – Winston