0

在自学(主要来自这个网站)之后,我终于无法找到问题的解决方案。
我正在尝试轻松创建 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];
}

然后我会使用标签来控制数组,就像你可以使用按钮一样。不过,这不适用于数组。
我希望我没有模棱两可。

4

1 回答 1

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];
于 2013-07-11T16:17:58.360 回答