无法在Objective-C中初始化C数组

Ser*_*nsk 1 objective-c

我的YYY.h文件是


 #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
Run Code Online (Sandbox Code Playgroud)

和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}
        };
...
Run Code Online (Sandbox Code Playgroud)

我收到错误"在{token in"boardPos [12] [12] = {"string之前的预期表达式.如果我在boardPos之前写了一些内容 - 它变成了局部变量;所以我无法正确初始化这个C数组.我需要boardPos可见在类范围.我试着把它放在类声明中 - 同样的错误.

顺便说一下,我已经在NSArray对象上重写了它,但仍然很有趣如何处理C数组.

谢谢!

yeh*_*nan 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}
    };
Run Code Online (Sandbox Code Playgroud)

并删除static int boardPos [12] [12]; 在.h中,删除.m中的boardPos [12] [12] = {...}.

这将使boardPos仅在此.m文件中可见.