1

次のように初期化を行った NSMutableArray があります。

@interface Countries ()
{
    NSMutableArray *arrayofCountry;
}
@end


- (void)viewDidLoad
{
       //...
       arrayofCountry=[[NSMutableArray alloc]init];
       //...
}

次に、removeObjectAtIndexその NSMutableArray にa を適用したいと思いました。

[arrayofCountry removeObjectAtIndex:sourceRow];

問題は、そのログでクラッシュしていることです:

-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance

私はそれを確認しました:

NSLog( NSStringFromClass( [arrayofCountry class] ));

そしてそれは戻ってきてい__NSArrayIます。問題は、それがどのように NSArray に変換されたかです。私はちょうどそれを移入しています:

arrayofCountry=[JSON valueForKeyPath:@"country_name"];

ご協力ありがとうございました。

4

3 に答える 3

4

これを試して。NSMutableArrayこれにより、他の配列の内容に基づいて新しいが作成されます。

arrayofCountry = [NSMutableArray arrayWithArray:[JSON valueForKeyPath:@"country_name"]];
于 2013-07-18T14:32:29.927 に答える
2

country_nameキーを使用して JSON ファイルに保存されている値が である場合、変更せずNSArrayに にコピーすることはできませんNSMutableArray。これを試してください:

arrayofCountry = [[JSON valueForKeyPath:@"country_name"] mutableCopy];

また、作成するときは、次のように作成します( allocを使用してからinitNSMutableArrayを使用する代わりに):

arrayOfCountry = [NSMutableArray array];
于 2013-07-18T14:33:32.270 に答える
1

このようにしてみて、

arrayofCountry=(NSMutableArray *)[JSON valueForKeyPath:@"country_name"];

@ Ahmed Mohammedとして:このように試してみることをお勧めします

arrayofCountry=[[JSON valueForKeyPath:@"country_name"] mutableCopy];
于 2013-07-18T14:27:52.060 に答える