Вам необходимо создать экземпляр NSMutableArray
и присвоить его свойству.
Поскольку объект со свойством - это UIViewController
, созданный в раскадровке, вы можете сделать это несколькими различными способами.мест.Вы можете переопределить initWithCoder:
, или awakeFromNib
, или viewDidLoad
.
Если вы переопределите initWithCoder:
, обязательно вызовите метод super
.
Если высделайте это в viewDidLoad
, массив не будет создан, пока не будет загружено представление, что не должно происходить сразу.
Я рекомендую сделать это в awakeFromNib
:
@synthesize myArray = _myArray;
- (void)awakeFromNib {
_myArray = [[NSMutableArray alloc] init];
}
Другим вариантом является ленивое создание массива путем переопределения метода get свойства:
@synthesize myArray = _myArray;
- (NSMutableArray *)myArray {
if (!_myArray)
_myArray = [[NSMutableArray alloc] init];
return _myArray;
}
Если вы сделаете это, очень важно, чтобы вы всегда обращались к массиву с помощью метода getter(self.myArray
или [self myArray]
) и никогда путем прямого доступа к переменной экземпляра (_myArray
).