我正在使用我正在获取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]的值时,我的应用程序崩溃了。 我不知道我做错了什么。我做错了在数组中添加字符串,并修改以访问未保存的数据? 请帮帮我。 提前致谢
答案 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];
}