我发现了很多关于NSMutableArray
vs的讨论NSArray
。这很有趣,我知道您不能在 NSArray 中添加或删除对象
但是是否可以更改 a 中的对象NSArray
?
我的意思是,如果我有 a NSArray
of NSNumber
,我可以更改NSNumber
中的NSArray
还是应该使用 aNSMutableArray
来修改 中的对象的值NSArray
?
我发现了很多关于NSMutableArray
vs的讨论NSArray
。这很有趣,我知道您不能在 NSArray 中添加或删除对象
但是是否可以更改 a 中的对象NSArray
?
我的意思是,如果我有 a NSArray
of NSNumber
,我可以更改NSNumber
中的NSArray
还是应该使用 aNSMutableArray
来修改 中的对象的值NSArray
?
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 中的数据吗?
是的。