7

私はこれを、オンラインで、スタックオーバーフローでどこでも探しましたが、私が間違っていることをまだ解決できません。

既存の NSMutableArray に要素を追加しようとしています。しかし、4 行目でクラッシュします。

-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x897b320

コード:

NSMutableArray *mystr = [[NSMutableArray alloc] init];

mystr = [NSArray arrayWithObjects:@"hello",@"world",@"etc",nil];

NSString *obj = @"hiagain";

[mystr addObject:obj];

私は何を間違っていますか?これは私を夢中にさせています!!!

4

5 に答える 5

14

あなたの配列は可変ではありません!. 使用するNSMutableArray

mystr = [NSMutableArray arrayWithObjects:@"hello",@"world",@"etc",nil];

addObject メソッドが含まれていないため、認識されないセレクターを取得 しますNSArray

于 2012-11-29T15:58:49.200 に答える
3

コードは次のようになります。

NSMutableArray *mystr = [[NSMutableArray alloc] initWithObjects:@"hello",@"world",@"etc",nil];

NSString *obj = @"hiagain";

[mystr addObject:obj];
于 2012-11-29T15:59:42.830 に答える
0

ああ、もう気づいた

行 2 は次のようになります。

[NSMutableArray arrayWithObjects:@"hello",@"world",@"etc",nil];

時間を無駄にしてごめんなさい!

于 2012-11-29T15:59:08.070 に答える
0

インスタンスを再割り当てする 2 行目ではNSArrayなくNSMutableArraymystr変数に。

次のようなことを試してください:

NSMutableArray *mystr = [NSMutableArray  arrayWithObjects:@"hello",@"world",@"etc",nil];

[mystr addObject:@"hiagain"]
于 2012-11-29T15:59:46.830 に答える
0

最初に mystr を変更可能な配列として作成しますが、次の行でそれを標準の NSArray に割り当てます。「arrayWithObjects」を呼び出す代わりに、「addObjects」または新しい不変配列を作成しないその他の関数を使用して各項目を追加します。

于 2012-11-29T16:00:05.560 に答える