2

我发现了很多关于NSMutableArrayvs的讨论NSArray。这很有趣,我知道您不能在 NSArray 中添加或删除对象

但是是否可以更改 a 中的对象NSArray

我的意思是,如果我有 a NSArrayof NSNumber,我可以更改NSNumber中的NSArray还是应该使用 aNSMutableArray来修改 中的对象的值NSArray

4

1 回答 1

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"

长话短说:

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

是的。

于 2013-02-07T14:50:28.190 回答