Скажем, у меня есть сильное свойство, как так:Безопасно ли присвоить свойство результат автореализованного инициализатора при использовании ARC?
@interface Foo
@property (strong, nonatomic) NSArray *myArray;
@end
И, на мой инициализаторе, я поставил туАггау так:
myArray = [NSArray array];
Является ли это безопасно? Поможет ли ARC должным образом сохранить myArray для меня?
Причина, по которой я прошу, состоит в том, что у меня есть проект, где myArray не должным образом сохранен в этом сценарии, и я получаю плохой доступ к памяти по дороге.
Но, если я использую
myArray = [[NSArray alloc] init];
то все хорошо.
Под «в моем инициализаторе» вы подразумеваете метод 'init [With ...]' вашего класса, правильно? –
Вы не используете свойство в своем назначении, вы напрямую назначаете поддержку ivar (что верно в инициализаторе). Но это не имеет значения, ARC сохранит этот массив в любом случае. (Так как базовый ivar тоже должен быть __strong) –