在Objective-C中,NSMutableArray
可以存储对象的指针。当你向NSMutableArray
中添加对象时,实际上是将对象的指针添加到数组中。这意味着,当你向数组中添加对象时,你实际上是在存储对象的引用,而不是对象本身。
这种方式的好处是,当你向数组中添加对象时,不会创建对象的副本。这在处理大型对象或对象集合时非常有用,因为它可以节省内存和处理时间。但是,这也意味着,如果你修改了数组中的对象,那么在数组中存储的对象指针也会被修改。
例如,如果你有一个NSMutableArray
,其中包含多个NSNumber
对象,如下所示:
NSMutableArray *array = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];
当你修改数组中的某个对象时,比如将@2
修改为@4
:
[array replaceObjectAtIndex:1 withObject:@4];
原始数组将被修改为@[@1, @4, @3]
。
总之,NSMutableArray
只将对象添加为指针是一种节省内存和提高性能的方法。但是,这也意味着,当你修改数组中的对象时,原始对象也会被修改。如果你希望建立对象的副本,而不仅仅是指针,你可以使用NSMutableArray
的copy
方法。
领取专属 10元无门槛券
手把手带您无忧上云