在自己教学之后(主要来自这个网站)我终于找不到问题的解决方案了 我试图轻松创建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];
}
然后我会使用标签来控制数组,就像使用按钮一样。但这对阵列不起作用。
我希望我没有暧昧。
答案 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];