创建具有混凝土位置的二维阵列

时间:2011-01-26 16:37:51

标签: iphone objective-c

我需要创建一个自定义数组:

在php中我将定义如下:

$myarray[100][80] = 1;

但我不知道如何在Objective-c中做到这一点......

我不需要数组[0][0],[0][1],[0][2], ...我只需要此数组中的具体位置[80][12], [147][444], [46][9823746],...

这些职位的内容总是= 1;

4 个答案:

答案 0 :(得分:0)

我不是PHP大师,但我相信php数组不是真正的数组,它们是哈希表吗?

无论如何,我认为您正在寻找NSDictionary或NSMutableDictionary类。

答案 1 :(得分:0)

看起来更像是一个bitset而不是一个数组。

为此分配这么多单元格似乎没用,所以也许你可以恢复问题,并将位置存储在一个数组中。

答案 2 :(得分:0)

为此您将使用字典而不是数组,因为它们始终是0,1,2键入,所以有以下几点:

NSNumber *one = [NSNumber numberWithInt:1];
NSString *key = @"80,12";

NSDictionary *items = [NSDictionary dictionaryWithObject:one forKey:key];

然后再次将它们拉出来,你将使用objectForKey:方法。

您无法将int直接放入数组或字典中,这就是它包含在NSNumber对象中的原因。要在从字典中获取NSNumber之后访问int,您将使用类似的内容:

NSNumber tempNum = [items objectForKey:key];
int i = tempNum.intValue;

有关NSDictionary类的完整说明,请参阅docs here。希望这会有所帮助...

答案 3 :(得分:0)

在目标c中,我们可以使用NSMutableArray来定义二维数组。

请参阅以下代码,它可能会对您有所帮助

NSMutableArray *row = [[NSMutableArray alloc] initWithObjects:@"1", @"2", nil];
NSMutableArray *col = [[NSMutableArray alloc] init];
[col addObject:row];
NSString *obj = [[col objectAtIndex:0] objectAtIndex:0];
NSLog(@"%@", obj);