声明二维数组大小的常量

时间:2012-09-30 16:19:03

标签: objective-c arrays constants

我正在开始Objective-C,我正在尝试创建一个integers的多维数组,我就是这样做的:

文件Constants.h(在Prefix.pch文件中添加)

typedef enum {
    BOARD_WIDTH=10,
    BOARD_HEIGHT=20
} BoardSizeEnum;

File Board.m

@implementation Board
{
    NSInteger mBoard[BOARD_WIDTH][BOARD_HEIGHT];
}

我尝试了许多为widthheight创建常量的方法,这种方式是唯一看起来(非常)正确的方法......我也试过了define但是我不喜欢这样,因为它没有输入(我想错了吗?)...

有没有更好的方法来创建它?我觉得它不是很干净......

编辑:
NSInteger*NSInteger,我显然想要一个integers数组,而不是指针。

2 个答案:

答案 0 :(得分:4)

你不应该声明这样的尺寸。当您有多个选项并且想要为每个选项命名时(而不是仅使用数字),通常会使用枚举。

要为数组声明常量,您有几个选项。

  1. 使用预处理器宏

    #define BOARD_WIDTH 10

  2. 使用常量

    static const int boardWidth = 10;

  3. 你的声明是错误的。您正在声明NSInteger 指针的二维数组。它应该是这样的:

    // assuming width and height is declared as described above.
    NSInteger mBoard[width][height]; 
    

答案 1 :(得分:0)

NSMutableArray *words[26];
    for (i = 0;i<26;) {
    words[i] = [[NSMutableArray alloc] init];
    }

你可以像这样使用它

[words[6] addObject:myInt];
[words[6] insertObject:myInt atIndex:4];
[words[6] objectAtIndex:4];
//in this case 6 is the column number and 4 is the row.