Я переглядаю чудовий блог, який підтримує Скотт Стівенсон, і я намагаюся зрозуміти основоположну концепцію Objective-C щодо присвоєння делегатам властивості "призначити" проти "зберегти". Зауважте, обидва однакові у сміттєвому середовищі. Мене найбільше хвилює середовище, що не базується на GC (наприклад, iPhone).
Безпосередньо з блогу Скотта:
"Ключове слово присвоїти буде генерувати сеттер, який присвоює значення змінній екземпляру безпосередньо, а не копіює або зберігає його. Це найкраще для примітивних типів, таких як NSInteger і CGFloat, або об'єктів, якими ви безпосередньо не володієте, наприклад, делегатів."
Що означає, що ви безпосередньо не володієте об'єктом делегата? Я, як правило, затримую своїх делегатів, тому що якщо я не хочу, щоб вони відходили в безодню, утримуватимуться, щоб подбати про це за мене. Я зазвичай абстрагую UITableViewController подалі від відповідного джерела даних і також делегую. Я також зберігаю саме цей предмет. Я хочу переконатися, що він ніколи не зникає, тому мій UITableView завжди має свого делегата.
Чи може хтось далі пояснити, де / чому я помиляюся, тож я можу зрозуміти цю загальну парадигму в програмуванні Objective-C 2.0 щодо використання властивості присвоєння делегатам замість збереження?
Дякую!