C 2-мерный массив в Objective-C - PullRequest
       25

C 2-мерный массив в Objective-C

1 голос
/ 23 декабря 2010

Я новичок в Objective-c, и я пытаюсь создать двумерный массив целых чисел.

Я знаю, что могу использовать C следующим образом:

int levelData[3][4] = {{1,1,1,1}, {1,0,0,1}, {1,1,1,1}};

Дело в том, что я хочу, чтобы другие классы могли иметь доступ к этим данным, поэтому мне нужно включить эту переменную в заголовочный файл, вот где проблема:

, объявленная как int **levelData, int levelData[3][4] иливсе, что не работает.

Кто-нибудь может мне помочь?

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

в вашем файле .h вы пишете

extern int levelData[3][4];

в вашем файле .m / .c, который вы пишете

int levelData[3][4]= {{1,1,1,1},{1,0,0,1},{1,1,1,1}};

EDIT:

во всяком случае, лучше вообще избегать глобальных переменных и вместо этого передавать их в качестве параметра или использовать в качестве класса ivar в вашем классе target-c. Это позволяет избежать странно трудно увидеть зависимости между модулями, например, если функция принимает levelData в качестве аргумента, то ясно, что функция работает с этим аргументом, однако, имея ее глобально, вы не можете легко увидеть, что использует функция.

1 голос
/ 23 декабря 2010

Нашел решение, у меня был статический инициализатор.Вы не можете использовать их в сочетании с этим.

...