从IOS中的NSMutableArray检索数组值

时间:2014-05-30 10:31:32

标签: ios objective-c nsmutablearray

我正在使用我正在获取photoID的应用程序,这是一个字符串。 我将该photoID存储在数组中,并再次将该数组添加到另一个数组中。 下面是代码::

 NSString *photoID;
    arr=[[NSMutableArray alloc]initWithCapacity:10];
    array=[[NSMutableArray alloc] init];
    [array addObject:photoID];
    [arr arrayByAddingObjectsFromArray:array];
         //number=(int)arr[1];
          NSLog(@"arr :  %@",arr);
           NSLog(@"arr[0] :  %@",arr[0]);
         NSLog(@"arr[1] :  %@",arr[1]);
          NSLog(@"Number1 :  %@",number1);
            NSLog(@"Number :  %d",number);

当我试图访问arr [1]的值时,我的应用程序崩溃了。 我不知道我做错了什么。我做错了在数组中添加字符串,并修改以访问未保存的数据? 请帮帮我。 提前致谢

2 个答案:

答案 0 :(得分:0)

这是因为这一行:[arr arrayByAddingObjectsFromArray:array];arr什么都不做,只有

  

返回一个新数组,它是接收数组的副本   包含在另一个数组中的对象添加到最后。

您应该将其替换为[arr addObjectsFromArray:array];。而且,arr中只有1个元素位于索引0处,因此arr[1]应该崩溃,但arr[0]应该有效。

答案 1 :(得分:0)

如果你想要arrayByAddingObjectsFromArray或者addObjectsFromArray,那么第一个数组应该是NSArray

NSArray *array1=[[NSArray alloc]initWithObjects:@"1",@"2",@"3", nil];
    NSMutableArray *array2=[[NSMutableArray alloc]init];
    [array2 addObjectsFromArray:array1];
    NSLog(@"%d",array2.count);

你也可以这样使用:

NSMutableArray *innerArray = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3", nil];
    NSMutableArray *outerArray = [NSMutableArray array];

    for(int i=0;i<=innerArray.count;i++)
    {
        [outerArray addObject:innerArray];

    }