我发现了很多关于NSMutableArray
vs NSArray
的讨论。
它非常有趣,我知道您无法在NSArray中添加或删除对象
但是可以更改NSArray
中的对象吗?
我的意思是,如果我有NSArray
NSNumber
,我可以更改NSNumber
中的NSArray
,还是应该使用NSMutableArray
能够修改NSArray
?
答案 0 :(得分: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中的数据吗?
是