2010-01-17 3 views
1

мой файл YYY.h являетсяНевозможно инициализировать C-массив в Objective-C


#define W 1 // i am 
#define B 2 // opponent 
#define F 3 // board margin 
static int boardPos[12][12]; 
@interface YYY : NSObject 
{...} 
-(id)init; 
@end 

и YYY.m является


#import "YYY.h" 


@implementation YYY 

-(id)init 
{ 
    if (self = [super init]) { 

     // initializing Empty Board 

     boardPos[12][12] = { 
      {F,F,F,F,F,F,F,F,F,F,F,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,0,0,0,0,0,0,0,0,0,0,F}, 
      {F,F,F,F,F,F,F,F,F,F,F,F} 
     }; 
... 

я получил ошибку "Ожидаемое выражение прежде, чем {лексема" boardPos [12] [12] = {"string.Если я пишу что-то перед boardPos - он становится локальной переменной, поэтому я не могу инициализировать этот C-массив должным образом. Мне нужно, чтобы boardPos был видимым в области класса. Я попытался поместить его в класс декларация - та же ошибка.

Btw, я уже переписываю его на объектах NSArray, но все же интересно, как работать с C-массивами.

Thx!

ответ

5

Я думаю, вы должны написать это в .m файл

static int boardPos[12][12] = { 
     {F,F,F,F,F,F,F,F,F,F,F,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,0,0,0,0,0,0,0,0,0,0,F}, 
     {F,F,F,F,F,F,F,F,F,F,F,F} 
    }; 

и удалить статические Int boardPos [12] [12]; в .h, удалить boardPos [12] [12] = { ...} в .m.

Это сделает видимым изображение на плате только в этом файле .m.

инициализации
+0

большое спасибо))) – Sergnsk

3

массив должно быть сделано в рамках декларации, т.е .:

in b[12] = {...}; 

это не представляется возможным в рамках динамического назначения ...

Смежные вопросы