Я занимаюсь серфингом в прекрасном блоге, поддерживаемом Скоттом Стивенсоном, и я пытаюсь понять фундаментальную концепцию Objective-C присвоения делегатам свойства "присваивать" vs "сохранить". Обратите внимание, что оба они одинаковы в среде сбора мусора. Меня больше всего интересует среда, не основанная на GC (например, iPhone).
Непосредственно из блога Скотта:
"Ключевое слово assign генерирует установщик, который напрямую присваивает значение переменной экземпляра, а не копирует или сохраняет его. Это лучше всего подходит для таких примитивных типов, как NSInteger и CGFloat, или для объектов, которые вы непосредственно не используете, например делегаты".
Что означает, что вы непосредственно не владеете объектом делегата? Обычно я сохраняю своих делегатов, потому что, если я не хочу, чтобы они уходили в пропасть, удержание позаботится об этом для меня. Обычно я отклоняю UITableViewController от своего соответствующего источника данных и делегата. Я также сохраняю этот конкретный объект. Я хочу убедиться, что это никогда не исчезнет, поэтому мой UITableView всегда имеет свой делегат.
Может кто-то еще объяснить, где/почему я ошибаюсь, поэтому я могу понять эту общую парадигму в Objective-C 2.0 программировании использования свойства assign на делегатах вместо сохранения?
Спасибо!