【发布时间】:2010-11-23 15:10:04
【问题描述】:
NSArray 和 NSMutableArray 有什么区别?
【问题讨论】:
-
做个好人...我们都必须从某个地方开始,文档对于新手来说可能非常神秘。
标签: iphone nsmutablearray nsarray
NSArray 和 NSMutableArray 有什么区别?
【问题讨论】:
标签: iphone nsmutablearray nsarray
NSArray : 在 NSArray 中我们不能改变索引.... 表示修复数组。
NSMutableArray : 在 NSMutableArray 中,我们可以更改索引并在运行时添加数组中的值..
【讨论】:
NSMutableArray(以及所有其他名称中带有Mutable 的类)可以修改。所以,如果你创建一个普通的NSArray,你以后不能改变它的内容(不重新创建它)。但是如果你创建一个NSMutableArray,你可以改变它——你会注意到它有像-addObject:和-insertObject:atIndex:这样的方法。
详情请见the documentation。
【讨论】:
“可变”类型是可以在初始化后更改的类,例如 NSMutableString 与 NSString。
【讨论】:
NSMutableString 派生自 NSString。因此,您不能依赖从外部收到的“NSString*”是不可变的。您只能假设 NSMutableString* 是可变的。 NSString* 可以是可变的或不可变的。这就是为什么当实例分配给类中的某个属性时,您可能希望调用 [str copy]。
NSString 类的instance。这不是问题。问题是“NSString*”不一定指向NSString 类的实例。它还可以指向派生自NSString 的类的实例,例如NSMutableString。因此,您不能依赖从外部世界收到的NSString* 是不可变的。