2

NSMutableArrayvsに関する多くの議論を見つけましNSArrayた。とても興味深いです。NSArray 内でオブジェクトを追加または削除できないことを理解しています。

しかし、オブジェクトを変更することは可能NSArrayですか?

の がある場合、NSArrayのをNSNumber変更できますかNSNumber、またはのオブジェクトの値を変更できるようにするために をNSArray使用する必要があり ますか?NSMutableArrayNSArray

4

1 に答える 1

7

NSArray要素を交換することはできません(要素を追加または削除することもできません)。変更可能なオブジェクトがある場合、配列を変更せずにオブジェクトを変更できるとしますNSArrayNSMutableString

ただし、Cocoa には変更可能なバリアントが含まれていないためNSNumber、数値オブジェクトでそれを行うことはできません。

例:

// immutable array, immutable elements: no way to change anything.
NSArray *array1 = @[@1, @2, @3];

// immutable array of mutable elements:
NSArray *array2 = @[[@"1" mutableCopy], [@"2" mutableCopy], [@"3" mutableCopy]];
NSLog(@"Step 1: %@", array2); // prints "1, 2, 3"

// now we change one of the elements of the immutable array:
[array2[0] appendString:@".1"];
NSLog(@"Step 2: %@", array2); // prints "1.1, 2, 3"

簡単に言えば:

NSArray 内のデータを変更できますか?

はい。

于 2013-02-07T14:50:28.190 に答える