【问题标题】:how to create NSMutableArrays in runtime in iphone如何在 iphone 运行时创建 NSMutableArrays
【发布时间】:2012-08-21 11:53:38
【问题描述】:

在我的一个应用程序中,我必须在需要时在运行时创建数组。如下:

for(int i=0;i<10;i++)
{
   NSMutableArray *array1 = [[NSMutableArray alloc] init];
} 

意味着我不想创建像 array1 这样的单个数组,而是要基于 i 值创建数组。就像在 for 循环中满足条件一样。

新的数组会像 array0,array1,array2,array3,array4....等

如果有人知道,请告诉我。提前致谢。

【问题讨论】:

    标签: iphone for-loop nsarray


    【解决方案1】:

    创建一个数组数组怎么样?喜欢:

    NSMutableArray *array = [NSMutableArray arrayWithCapacity:10];
    for (int i = 0; i < 10; i++) {
         [array addObject:[NSMutableArray array]];
    }
    
    //get array 0
    NSMutableArray *array0 = [array objectAtIndex:0];
    
    //get array 1
    NSMutableArray *array1 = [array objectAtIndex:1];
    
    //get array i
    
    NSMutableArray *arrayI = [array objectAtIndex:i];
    

    【讨论】:

    • 嗨 fbernardo 感谢您的回复。这在某种程度上很有用,但我担心的是我不想创建这些 NSMutableArray *array0 = [array objectAtIndex:0];静态的。我想以什么方式创建数组就像 //get array 1 NSMutableArray *array1 = [array objectAtIndex:1]; //获取数组 i NSMutableArray *arrayI = [array objectAtIndex:i];
    • 所以不要...我向您展示了如何访问它们,我不是手动创建它们。您可以将 10 替换为 1000000,它将创建 1000000 个数组。
    【解决方案2】:

    听起来您想根据命名约定访问一堆不同的数组:数组“i”。您不能真正创建这样的动态变量,但您可以创建字符串并将这些数组存储在 NSMutableDictionary 中以便于检索。

    NSUInteger count = 10;
    NSMutableDictionary *arrays = [NSMutableDictionary dictionaryWithCapacity:count];
    for (int i = 0; i < count; i++){
        [arrays setObject:[[NSMutableArray alloc] init] forKey:[NSString stringWithFormat: @"array%i", i];
    }
    

    现在当你想访问一个特定的数组时,你可以使用:

    NSMutableArray *array1 = [arrays objectForKey:@"array1"];
    

    【讨论】:

    • 嗨 fbernardo 感谢您的回复。这在某种程度上很有用,但我担心我不想像您提到的那样静态创建这些数组。
    • 我想以何种方式创建数组如下所述。 for(int i=0;i
    • 我提到的动态创建数组的方式。基本上创建的数量与您分配给count 的数量一样多。在我访问数组的示例中,我将结果存储在array1 中,仅作为演示检索的示例。我的回答和 fbernardo 的回答都是完全合理的。这仅取决于您要如何访问存储的数组以及是否需要顺序迭代。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多