快速NSMutableArray问题

时间:2011-04-29 22:37:57

标签: objective-c nsmutablearray nsarray

我想知道,使用NSMutableArray是制作数组的最好方法,我将添加对象吗?或者,只是一个常规的NSArray?其次,我试图在java中创建类似于ArrayList的东西(因此对大小没有限制),我想知道如何做到这一点。我想到的是制作一个更大的数组并将旧数组复制到其中。我的代码:

- (void) addAccount:(BankAccount *)b
{

accountCount = [NSNumber numberWithDouble:[accountCount doubleValue] + 1];    
NSMutableArray *oldList = accounts;
accounts = [[NSMutableArray alloc] (some code to make bigger and copy over)];

}

P.S。我昨天教自己这种语言,所以如果它太先进我可能不理解你的反应

4 个答案:

答案 0 :(得分:0)

NSMutableArrayNSArray之间的区别在于“可变”一词的含义。即: mutable 数组可以在创建后修改,而“普通”NSArray是immutable,并且在创建后无法修改。

因此,使用NSMutableArray并通过addObject:方法向其添加对象似乎是一种理想的解决方案。

答案 1 :(得分:0)

NSMutableArrays是你想要的。此外,NSMutableArrays已经像ArrayLists或STL向量,或其他任何“没有大小限制”的东西。您可以说[myArray addObject:someObject];,直到内存不足为止,它会根据需要不断调整大小。

答案 2 :(得分:0)

  1. 如果您想一次性添加对象,请使用NSArray。如果您现在要添加一些对象,那么稍后再使用NSMutableArray
  2. 您的代码段没有多大意义。要制作NSMutableArray,请执行以下操作:

    NSMutableArray *array = [NSMutableArray array];

答案 3 :(得分:0)

如果您不需要订单(通常不需要),请使用NSSet / NSMutableSet。