также
int mapData[8][8];
и
int **mapData;
интерпретируется по-разному. Первый будет массивом с 64 последовательными целыми числами, а другой - указателем на указатель на int.
Может быть, это может сработать для вас, оборачивая 2d массив в структуру ...
struct map_s {
int map[8][8];
};
typedef struct map_s map_t;
@interface Map : NSObject {
map_t mapData;
}
@property (nonatomic, readwrite) map_t mapData;
@end
@implementation Map
@synthesize mapData;
- (id)initWithMap:(map_t)map {
int i, j;
for (i=0; i<8; i++) {
for (j=0; j<8; j++) {
self.mapData.map[i][j] = map.map[i][j];
}
}
return self;
}
@end
Переписать немного, чтобы показать инициализатор карты
struct map_s {
int map[8][8];
};
typedef struct map_s map_t;
@interface Map : NSObject {
map_t mapData;
}
@property (nonatomic, readwrite) map_t mapData;
- (void)init;
- (id)initWithMap:(map_t)map;
@end
@implementation Map
@synthesize mapData;
- (void)init
{
map_t first = {
{
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 }
}
};
[self initWithMap:first];
}
- (id)initWithMap:(map_t)map {
mapData = map;
return self;
}
@end