轻松创建具有唯一名称的100万个NSMutable Arrays

时间:2013-07-11 16:04:46

标签: iphone for-loop nsmutablearray

在自己教学之后(主要来自这个网站)我终于找不到问题的解决方案了 我试图轻松创建100万个具有唯一名称的NSMutableArrays。我的意思很容易就是没有所有单个阵列的“硬编码” 我想做的是这样的事情:

for (int i = 1; i <= 1000000; i++) {  
    NSString *arrayNumber = [NSString stringWithFormat:@"%d", i];  
    NSString *millionArrayNumber = @"millionArrayNumber";  
    NSString *arrayName = [millionArrayNumber stringByAppendingString:arrayNumber];  
    NSMutableArray *[NSString arrayName] = [NSMutableArray array];  
}  

我能理解为什么这不起作用,但我想不出另一种方法。我认为可以使用类似的东西:

[button setTag = 1];

如果我将代码更改为:

for (int i = 1; i <= 1000000; i++) {    
    NSMutableArray *millionArray = [NSMutableArray array];  
    [millionArray setTag: i];
}

然后我会使用标签来控制数组,就像使用按钮一样。但这对阵列不起作用。
我希望我没有暧昧。

1 个答案:

答案 0 :(得分:1)

我不确定如何将字符串转换为文字代码,就像你正在做的那样,但我认为这是可能的。

但是,您总是可以将100万个数组添加到NSMutableDictionary中,并为每个数组提供唯一的密钥名称。

NSMutableDictionary *arrayStore = [NSMutableDictionary dictionary];
for (int i = 1; i <= 1000000; i++) {  
    NSString *arrayNumber = [NSString stringWithFormat:@"%d", i];  
    NSString *millionArrayNumber = @"millionArrayNumber";  
    NSString *arrayName = [millionArrayNumber stringByAppendingString:arrayNumber];  
    arrayStore[arrayName] = [NSMutableArray array];  
}

显然,为了获得你想要的任何数组,你只需使用:

NSMutableArray *uniqueArray = arrayStore[arrayName];

编辑:不确定您是否要将该号码保留为下面评论中提到的唯一键,但如果是,您可以这样做:

NSMutableDictionary *arrayStore = [NSMutableDictionary dictionary];
for (int i = 1; i <= 1000000; i++) { 
   arrayStore[@(i)] = [NSMutableArray array];  
}

并使用(例如,数组编号100)访问它:

NSMutableArray *uniqueArray = arrayStore[@100];