質問

私は自分が入っている境界のないインデックスの問題を理解しようとしています newArray 物体。私は渡ります oldArray メソッドに、次に使用します。

newArray = [[NSMutableArray alloc] initWithArray:oldArray];

もしも oldArray リリースされました、この行でエラーが発生しますか、それともアクセスしようとすると範囲外の例外が得られますか newArray?

役に立ちましたか?

解決

いいえ、上記のコードはのコピーを作成します oldArray の中へ newArray. 。変化 oldArray いかなる方法でも(リリースを含む)には影響しません newArray, 、そしていずれにせよ、確かにバウンドの例外を引き起こしません。

最も可能性の高い原因はそれです oldArraynil この時点で、そうです newArray あなたがそれがそうなるとは思わないとき、空の配列です。代わりに、 oldArray あなたが思うほど多くの要素を持っていないかもしれません。バウンド例外とは、配列の終わりを過ぎて読んでいることを意味します。メモリ管理とは何の関係もありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top