Мне было интересно, могу ли я напрямую назначить, инициализировать ivar сейчас с помощью ARC (потому что, если я хорошо помню, это было невозможно без ARC, потому что это пропустило бы память нет) ?Objective-C - назначение/инициализация объекта с ARC
Пример (рассмотрит Ивар объявленный как это):
@property (nonatomic, strong) NSArray *myArray;
@synthetize myArray = _myArray;
А потом сделать
self.myArray = [[NSArray alloc] initWithObjects:object1, object2, nil]; //I know I could directly use [NSArray arrayWithObjects:...] but that's the purpose of my question
Это неправильно. Разумеется, вы можете использовать 'alloc' в коде ARC, но не' keep', 'release' или' autorelease'. Кроме того, ARC делает больше, чем просто вкладывает все в пул автономии; он анализирует ваш код для определения времени жизни каждой ссылки и вставляет соответствующие вызовы методам управления памятью. – Caleb
согласны с тем, что сохранение не может быть использовано, но я упомянул, что жизненный цикл остается тем же. прочитайте 2-й и 3-й строки – zahreelay
Да, но вы сначала написали: «Вы все еще можете выделить и сохранить». Прочитайте 1-ю строку. И, как я уже сказал, предложение, начинающееся «Все, что делает ARC ...», в лучшем случае вводит в заблуждение. – Caleb