В пятницу Apple разослала уведомление разработчикам о том, что до 1 мая они должны перевести всё своё программное обеспечение на Automatic Reference Counting. Использовать технологию Garbage Collection больше нельзя.
Начиная с 1 мая 2015 года новые приложения и обновления для компьютеров Mac, размещённые в Mac App Store, не могут пользоваться технологией Garbage Collection. От неё начали отказываться ещё со времён запуска OS X Mountain Lion. Всё программное обеспечение следует перевести на Automatic Reference Counting (ARC) при помощи ассистента миграции в Xcode. В приложениях может использоваться retain/release в ручном режиме
Garbage Collection – это устаревшая технология управления памятью. Она предусматривала периодическое удаление и очистку памяти компьютера от объектов, которые уже не нужны для работы с ПО. Automatic Reference Counting, пришедший ему на смену, не запускает никаких фоновых процессов и не освобождает память – он компилирует код за программиста, расставляя retain/release.
Напомним, что ARC для языка Objective-C был представлен Apple ещё в 2011 году для iOS 4.0 и Mac OS X 10.6 с выходом xCode 4.2.
Новые условия вступают в силу 1 мая. То ПО, которое не будет переведено на ARC до этого времени, будет удалено из Mac App Store. [apple]
15 комментариев
Форум →Collector, а не collection
@MrHubris, в статье все верно, если вы только не знаете технологии apple лучше самой apple)
@ironDrew, нет, он просто так спешил набросить на Наталью.
@MrHubris,
Garbage Collector – сборщик мусора
Garbage Collection – сбор мусора
Никакой принципиальной разницы
И чем им сборка мусора помешала, непонятно.
@fedorez, своими непредсказуемыми тормозами, которые могут выражаться, например, во фризах анимации пользовательского интерфейса.
> Garbage Collection – это устаревшая технология управления памятью
чуть пломбы не вылетели от смеха
@Lord Wind, В мире OS X – устаревшая (deprecated). Мы же не о Java/.NET/чём-нибудь ещё говорим?
в оригинале написано
> new Mac apps and app updates submitted to the Mac App Store may no longer use garbage collection, which was deprecated in OS X Mountain Lion. Instead, migrate your apps to Automatic Reference Counting
По-видимому речь идет о смене библиотек для сборки мусора. Потому что сборщик мусора как раз и занимается подсчетом ссылок и удалением объектов, на которорые больше ничкто не ссылается. Просто старая библиотека названа именем технологии, отсюда и путаница.
Для попровляющих название, сомневающихся и теряющих пломбы:
Apple не считат устаревшей технологию сборки мусора. Apple считет неэффективной свою старую библиотеку и принуждает пользоваться новой.
@mipxtx, “Потому что сборщик мусора как раз и занимается подсчетом ссылок и удалением объектов, на которорые больше ничкто не ссылается.”
Разные есть подходы. Например, классический подсчет ссылок, будь он ручной или автоматический, не справится с ситуацией, когда объект A ссылается на B, а B, в свою очередь, на A. Получается закольцованная связь, оба объекта держат друг друга и никогда не освободят память. GC такую ситуацию разрулить может, но для этого ему, обычно, требуется больше ресурсов.
@arabesc, это называется retain cycle – очень опасная вещь
@mipxtx, Нет, это не смена “библиотек для сборки мусора”. ARC – это принципиально иной подход. Это, своего рода, автоматизация ручного подсчёта ссылок, где на этапе компиляции (в отличие от GC) автоматически вставляются команды на освобождение памяти (то, что раньше приходилось делать вручную). Т.е. во время выполнения никакого специального механизма, следящего за освобождением памяти, нет. GC же – это, по сути, отдельная программа, которая анализирует объектный граф (как правило) и удаляет объекты, которые больше не используются.
Интересно, будет ли что то с проектами без Garbage Collection и без ARC ?
@hairpet, Думаю, ничего. Apple, скорее всего, просто не хочет поддерживать GC в новых версиях ОС. Отсюда и запрет. А программам на MRC никакая спец. поддержка не нужна. Они, по сути, не отличаются от программ на ARC, просто retain/release/autorelease расставляет не программист, а компилятор.
Можно запилить свой коллектор, если очень надо.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Почему не работает режим Картинка в картинке для YouTube на iPhone
Что делать, если заблокировали аккаунт в Instagram?
Как на Mac завершить несколько приложений одним нажатием или сочетанием клавиш
Как объединить артистов в iTunes?
Как на iPhone очистить историю браузера. Удаляем посещенные сайты в Safari быстро
Как восстановить удаленное стандартное приложение в iOS 10?
Куда надежнее отдать на ремонт iPhone и Mac?
Как включить смайлы (эмодзи) в предиктивном наборе на iOS 10?