Обновление предпочтительных областей

OS X v10.6 представляет несколько функций в масштабе всей системы, которые должны поддерживать предпочтительные области. В v10.6 и v10.7, предпочтительные области должны быть 64-разрядными, использовать сборку «мусора» и поддерживать внезапное завершение. В v10.8 и позже, сборка «мусора» осуждается в пользу ARC (Автоматический Подсчет ссылок). В целях перехода v10.6 будет поддерживать 32-разрядные предпочтительные области от разработчиков за пределами Apple. Для 32-разрядных предпочтительных областей не требуется сборка «мусора», и поддержка внезапного завершения, “выбирают - в”. Для 64-разрядных предпочтительных областей сборка «мусора» является требуемой функцией, и внезапное завершение включено по умолчанию. Строго рекомендуется, чтобы все новые предпочтительные области были 64-разрядными, поскольку поддержка 32-разрядных предпочтительных областей не гарантируется в будущем.

Создание предпочтительной 64-разрядной области

Начиная с v10.6 предпочтительные области должны быть 64-разрядными программами. В будущем только будут поддерживаться 64-разрядные версии предпочтительных областей. В переходных целях, однако, v10.6 поддерживает 32-разрядные предпочтительные области также.

Поскольку Вы, вероятно, хотите, чтобы Ваша предпочтительная область работала под более ранними версиями Mac OS, и потому что v10.6 может быть выполнен на 32-разрядных машинах, Вы, вероятно, хотите выпустить свою предпочтительную область как двойной двоичный файл для 10,6, и в 32-разрядных и в 64-разрядных версиях.

При обеспечении двойного двоичного файла предпочтительная область больше походит на платформу, чем автономное приложение, в котором ее могут вызвать 32-разрядные или 64-разрядные приложения.

Посмотрите 64-разрядное Руководство по Переходу для Какао для описания того, как записать Вашу предпочтительную область как 64-разрядную программу, и как обеспечить двойной двоичный файл, который можно вызвать из 32-разрядных или 64-разрядных приложений.

Используя сборку «мусора»

Все 64-разрядные предпочтительные области, как ожидают, будут использовать сборку «мусора» в v10.6 и v10.7. Используя сборку «мусора», в большинстве случаев, упростит Ваш код и сократит вероятность утечек памяти.

В 10,6, приложение Установок системы выполнит 64-разрядные предпочтительные области со сборкой «мусора», включенной и 32-разрядные области с отключенной сборкой «мусора».

См. Руководство по программированию Сборки «мусора» для описания того, как реализовать сборку «мусора» в программах Какао и для директив компилятора для создания рабочего кода для двойных двоичных файлов. Все еще необходимо сохранить и выпустить объекты в 32-разрядном коде, но с надлежащими директивами компилятора, компилятор проигнорирует эти операторы в 64-разрядной версии.

Поддержка внезапного завершения

Сделать закрытие Mac быстрее и более удобным, 10.6 представляет внезапное завершение. Когда пользователь закрывает устройство, приложения, поддерживающие внезапное завершение, просто уничтожаются, вместо того, чтобы быть сказанными, что они завершены и позволяются выполнить незаконченные задачи.

Важно, чтобы Вы отключили и повторно включили внезапное завершение в частях Вашего кода, имеющих незаконченную работу, которая должна быть завершена, прежде чем Ваша программа завершается. В частности методы willUnselect и didUnselect не должен полагаться к завершенной работе на завершении работы.

Для отключения внезапного завершения временно вызовите disableSuddenTermination метод в NSProcessInfo. Когда Ваша область находится в состоянии, позволяющем ей быть безопасно завершенной SIGKILL, вызвать enableSuddenTermination. Можно вложить вызовы, чтобы отключить внезапное завершение, или отключить и включить внезапное завершение на фоновом потоке: внезапное завершение не включено, пока все вызовы для отключения его не были сбалансированы вызовом для включения его снова.

Идеально, Ваша предпочтительная область должна обновить предпочтительный файл каждый раз, когда пользователь вносит изменение в области, таким образом, никакая работа не должна быть выполнена на завершении работы.

Для сложных групп предпочтений, которые должны быть изменены как набор, изменения должны быть сохранены к временному документу, поскольку они изменяются, и кнопка Apply должна быть предоставлена для сбрасывания настроек к фактическим предпочтениям.

Временный документ должен включать флаг, чтобы указать, что были применены настройки. Когда область загружается, она должна загрузить свои настройки из этого временного документа и установить кнопку Apply, активную, если еще не были применены настройки. Если Вы будете следовать этой рекомендации, то Ваша область не должна будет отключать внезапное завершение, когда пользователь внесет изменения, поскольку никакая работа не должна будет быть выполнена на завершении работы. Посмотрите рисунок 1 для иллюстрации этого метода.

  Иллюстрация рисунка 1
Using a temporary document for complex settings

64-разрядным предпочтительным областям включили внезапное завершение по умолчанию. 32-разрядные предпочтительные области могут выбрать - в к внезапному завершению путем установки булева значения NSSupportsSuddenTermination к true в предпочтительной области .plist файл.