我需要创建一个自定义数组:
在php中我将定义如下:
$myarray[100][80] = 1;
但我不知道如何在Objective-c中做到这一点......
我不需要数组[0][0],[0][1],[0][2], ...
我只需要此数组中的具体位置[80][12], [147][444], [46][9823746],...
这些职位的内容总是= 1;
答案 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);