多维NSArray对象

时间:2010-04-07 23:28:02

标签: objective-c multidimensional-array nsarray

有没有办法在不使用基本格式aFloatArray [] []嵌套数组的情况下创建二维NSArray。

谢谢。

3 个答案:

答案 0 :(得分:17)

不幸的是没有。要创建多维NSArray:

NSArray *multiArray = [NSArray arrayWithObjects:
    [NSMutableArray array],
    [NSMutableArray array],
    [NSMutableArray array],
    [NSMutableArray array], nil];

// Add a value
[[multiArray objectAtIndex:1] addObject:@"foo"];

// get the value
NSString *value = [[multiArray objectAtIndex:1] objectAtIndex:0];

但是,您可以在Objective-C中使用C代码(因为它是C的严格超集),如果它符合您的需要,您可以按照建议声明数组。

答案 1 :(得分:11)

你可以这样做:

NSArray *array = @[@[@"0:0", @"0:1"],
                   @[@"1:0", @"1:1"]];

NSString *value = array[1][0];

我认为这比“objectAtIndex”的东西短得多。

但请注意,您已使用Apple LLVM编译器版本> = 4.0

答案 2 :(得分:0)

在Collection或TableView中为多维数组插入一个对象cellForRowAtIndexPath:

NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];                
[dictionary setValue:[UIImage imageWithData:imageData] forKey:sectionRow];

从Collection或TableView cellForRowAtIndexPath中的多维数组中检索对象:

NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];    
UIImage *cellImage = [dictionary valueForKey:sectionRow];