与NSMutableArray相比,我可以修改NSArray中的数据吗?

Fre*_*edv 2 nsmutablearray nsarray ios

我找到了很多关于NSMutableArrayvs的讨论NSArray.这非常有趣,我知道您无法在NSArray中添加或删除对象

但是有可能改变一个NSArray

我的意思是,如果我有一个NSArrayNSNumber,我可以改变NSNumberNSArray或者我应该使用NSMutableArray能够修改该对象的值NSArray

Nik*_*uhe 7

NSArray不允许你交换元素(也不能追加或删除它们).如果你有一个NSArray可变对象,说NSMutableString是你可以修改的对象,而不改变阵列.

但是,由于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"
Run Code Online (Sandbox Code Playgroud)

长话短说:

我可以修改NSArray中的数据吗?

是.