1

を使用してNSMutableArray *myArray、適切に .xml 解析されたファイルの結果である がありますTouchXML

nameキーを使用してすべての要素を抽出し、別の に保存したいだけですが、配列全体ではなく最後の列挙文字列のみが含まれているためNSMutableArray、最終的NSMutableArray *namesListなものにアクセスできず、iPhone アプリがすぐにクラッシュします。

コードは次のとおりです。

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

そして、ここに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'
4

2 に答える 2

2

あなたはこれを行うことができるはずです:

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]);
于 2012-04-04T16:53:37.813 に答える
2

[[myArray objectAtIndex:i] objectForKey:@"name"];別の配列ではなくオブジェクトを返すため、それNSStringに送信することはできませんobjectAtIndex。配列の構造を確認してください。

于 2012-04-04T15:24:28.063 に答える