У меня есть ивар в моем классе Obj-C, это массив C (я не заинтересован в том, чтобы сделать его свойством Obj-C). Достаточно просто. Теперь в методе init моего класса я хотел бы заполнить этот массив некоторыми значениями, используя сокращенную запись init массива C, как показано в моем .m ниже. Но я вполне уверен, что это создание локальной переменной с тем же именем и не инициализация моей переменной экземпляра. Я не могу поместить свой массив init в интерфейс, и я не могу объявить ivar в реализации. Я просто застрял, делая какое-то глубокое копирование или у меня есть другой вариант?
В GameViewController.h
#define kMapWidth 10
#define kMapHeight 10
@interface GameViewController : UIViewController
{
unsigned short map[kMapWidth * kMapHeight];
}
@end
В GameViewController.m
- (id)init
{
if ((self = [super init]))
{
unsigned short map[kMapWidth * kMapHeight] = {
1,1,1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,
};
}
return self;
}