Ну, это в основном тот же случай, что и в MRC.
Ваши IBOutlets обычно находятся в иерархии представлений вашего контроллера и неявно сохраняются их родительскими представлениями.Вы можете использовать assign
(MRC) или weak
или unsafe_unretained
(ARC).Во всех случаях ваш указатель становится недействительным, когда вы удаляете объект из иерархии представлений.Единственное отличие состоит в том, что в MRC и ARC 4.0 указатель не устанавливается автоматически на ноль.Он по-прежнему содержит адрес памяти, но адрес недействителен.В любом случае вам больше не следует использовать указатель.
Всякий раз, когда вы хотите использовать объект, даже если он не является частью вашей иерархии представления (обычно каждый элемент верхнего уровня в xib или когда вы удаляетепредставления из вашей иерархии динамически, и вы не хотите, чтобы они были признаны недействительными), вы используете спецификаторы retain
или strong
.
Обратите внимание, что многие примеры используют strong
для каждого IBOutlets, и это не ошибка.Это просто не нужно.