2009-08-28 43 views
58

の相違点b/w NSArrayNSMutableArrayの違いは何ですか?NSArrayとNSMutableArrayの相違点

+4

.. NSMutableArrayの中で私たちは、インデックスを変更することができ、また、実行時に配列に値を追加します...我々はすべてどこかに開始する必要があり、そしてドキュメントは新人に非常に不可解なことができます。 – kmiklas

答えて

113

NSMutableArray(および名前にMutableのすべてのクラス)を変更することができます。したがって、平文NSArrayを作成した場合は、内容を後で変更することはできません(再作成せずに)。しかし、NSMutableArrayを作成した場合は、変更することができます。-addObject:-insertObject:atIndex:のようなメソッドがあります。

詳細はthe documentationを参照してください。

4

「変更可能な」タイプは、NSMutableStringNSStringのように、初期化後に変更できるクラスです。

+1

'NSMutableString'はNSStringから派生しています。したがって、外部から受け取った "' NSString * '"に依存することはできません。 'NSMutableString *'は変更可能であるとしか思えません。 'NSString *'は変更可能または変更不可能です。だから、あなたのクラスのいくつかのプロパティにインスタンスが割り当てられているときに、 '[str copy]'を呼びたいかもしれません。 –

+0

NSStringをビルドすると変更できません。 http://stackoverflow.com/questions/905396/the-final-word-on-nsstrings-mutable-and-immutableを参照してください。コピーを使用する理由は、http://stackoverflow.com/questions/387959/nsstring-property-copy-or-retain –

+1

シャギー:NSStringクラスの*インスタンス*を変更することはできません。これは問題ではありません。問題は、 '' NSString * '"は必ずしも 'NSString'クラスのインスタンスを指しているとは限りません。 NSMutableStringのように 'NSString'から派生したクラスのインスタンスを指すこともできます。したがって、あなたは外部から受け取った 'NSString * 'に依存することはできません。 –

0

NSArray:NSArrayではインデックスを変更できません.... 修正配列を意味します。

NSMutableArrayの:いいです

関連する問題