Крис Ван Баэль прав, независимо от того, знаете ли вы, что это за объект, если вы хотите владеть им (если вы сами должны гарантировать, что объект жив), вы должны сохранить его. Отпустите его, когда он вам не нужен, и установите ссылку на NIL (для безопасности).
Но их исключение !
Иногда вы не хотите владеть, самый распространенный пример - делегат.
Вы не хотите сохранять свой делегат, потому что он, вероятно, уже сохраняет вас, и если оба объекта освобождают друг друга в методе dealloc, ваше приложение утечет.
Но в этом случае вам не нужно заботиться о том, чтобы делегат был освобожден: делегат должен установить для вашего свойства «делегата» значение nil в методе dealloc.
Итак
- если у вас есть право собственности на объект: оставьте без выбора!
- если объект принадлежит вам: назначайте и не волнуйтесь!