Я давно считал себя снобом мусора - несмотря на тайную любовь к C ++, я начинаю насмехаться над разработчиками, которые активно выбирают языки без (читай: отсутствует ) сборки мусора, когда они 'Мне дали вариант.
И тогда я встретил Objective-C.Вот Это Да!Его система подсчета ссылок кажется невероятно простой - я бы даже сказал, что элегантный .При разработке для OSX разработчикам предоставляется возможность использовать шикарный GC;при разработке для iOS разработчики застряли с подсчетом ссылок.
Мой вопрос:
Если я разрабатываю приложение для OSX, которое может потенциально быть портированным на iOS,Система подсчета ссылок Objective-C достаточно трудоемкая (для разработки и исправления ошибок), чтобы гарантировать игнорирование ее для первой версии приложения?
С какими проблемами я могу столкнуться, если я полагаюсь на подсчет ссылок *, предполагая, что я недостаточно умен, чтобы строить какие-либо дьявольски сложные циклические структуры данных?С такими функциями, как autorelease
, все это кажется таким простым, , но я знаю, что Apple не вложила бы усилия в создание сборщика мусора, если бы это действительно было так.Что мне нужно искать?
* Я знаю, что могу использовать сборщик мусора, даже если я выбрасываю retain
с и release
с (они будут игнорироваться).Тем не менее, учитывая, что приложения, не относящиеся к GC, часто используют RAII , я не понимаю, как это будет работать, если GC поколения "заменит" вызовы retain
и release
.Не будут ли ресурсы потенциально освобождены поздно?