我正在使用insertObject for NSMutableArray将值存储到二维数组中,如下所示。
[mutableArrayPtr insertObject:[NSMutableArray arrayWithObjects:firstData, secondData,nil] atIndex:index];
我认为,这是在Obj C中将值存储在二维数组中的正确方法。
我想在以后的时间访问它。我怎么能这样做?
谢谢!
答案 0 :(得分:1)
你这样做的方式非常好。 NSArray
没有本机二维语法,如原始数组(int[][]
,double[][]
等等)在C做。因此,您必须使用数组数组来嵌套它们。以下是如何执行此操作的示例:
NSString *hello = @"Hello World";
NSMutableArray *insideArray = [[NSMutableArray alloc] initWithObjects:hello,nil];
NSMutableArray *outsideArray = [[NSMutableArray alloc] init];
[outsideArray addObject:insideArray];
// Then access it by:
NSString *retrieveString = [[outsideArray objectAtIndex:0] objectAtIndex:0];
要在以后访问您的阵列,您可以执行以下操作:
NSArray* innerArray = [mutableArrayPtr objectAtIndex:0];
NSObject* someObject = [innerArray objectAtIndex:0];
当然,将0
更改为您实际需要检索的索引。
修改强>:
问: 对于二维来说,它是“initWithObjects”(或)“insertObject:[NSMutableArray arrayWithObjects:imagePtrData,urlInStr,nil]”?
A: initWithObjects
和insertObject
都允许您创建二维数组。例如,您可以这样做:
NSMutableArray* arrayOne = [[NSMutableArray alloc] initWithObjects:[NSArray initWithObjects:@"One", @"Two", @"Three", nil], [NSArray initWithObjects:[@"Four", @"Five", @"Six", nil], nil];
// NOTE: You need to release the above array somewhere in your code to prevent a memory leak.
或:
NSMutableArray* arrayTwo = [NSMutableArray array];
[arrayTwo insertObject:[NSArray arrayWithObjects:@"One", @"Two", @"Three", nil] atIndex:0];