1

私は根本的に間違ったことをしているという混乱した状態に遭遇したと思いますが、これが何を、なぜ起こっているのか理解できません。

写真1:Myクラスのプロパティ。NSMutableArray。

財産

Picture2:実行したいコードブロック、11番目のオブジェクトを削除したい。

コード

Picture3:デバッグコンソールは、配列内に30個のオブジェクトがあることを示しています。

コンソールステートメント

そして今、私はこれが簡単な作業になるだろうと思っていました。それ以来、ソースコード内の他のNSMutableArraysのインデックスにあるオブジェクトを削除して置き換えました。これがPicture4です。 スタックトレース

これは、NSMutableArrayがremoveObjectAtIndexに応答しないことを示していると思います。

一体何が間違っているのか誰か知っていますか?私は完全に混乱しています。

いいえ、これは宿題ではありません...たとえ信じられたとしても。そうです。


編集:dagArrayに入ったオブジェクトの解析中にエラーが発生しました。

私の代わりに、[tempPeriod.dagArray addObject:object]まったく違うことをしていました。

別の配列で作業していて、その配列にオブジェクトを追加しました。パーサーが終了したときに使用したためtempPeriod.dagArray = [theOtherArray copy]、このエラーが発生しました。theOtherArrayそれでもNSMutableArray私を混乱させた。しかし、私の最も良い推測はcopy、NSMutableArrayで何かを実行して、それらのセレクターを実行できないようにすることです。しかし、私は完全に間違っている可能性があります。

これにいくつかの考えを輝かせてくれてありがとう。

4

2 に答える 2

2

実際には、それはNSArrayremoveObjectAtIndexに応答しないと言っています。それは本当だろう。として定義しているのにNSMutableArray、間違った方法で初期化した可能性がありますか?どこで配列を初期化しますか、現在の配列が実際にある可能性はありNSArrayますか?

なぜなら:

NSMutableArray *anArray = [[NSArray alloc] initWithObject:anObject];

可能ですが、間違ったセレクターを選択するとランタイムエラーが発生します。

于 2012-11-12T10:43:01.000 に答える
2

-mutableCopy配列の可変コピーが必要な場合は、を使用する必要があります。可変配列でも、を使用-copyすると、不変配列が得られます。

于 2012-11-12T11:39:58.777 に答える