Индивидуалисты OS X v10.9
Эта статья суммирует изменения ключевой технологии и улучшения, доступные в OS X v10.9. Информация об этих изменениях организована в разделы технологической областью.
Основные функции описывают важные функции то влияние разработчики.
Функции уровня платформы описывают изменения в системных платформах.
Функции приложения описывают изменения во встроенных приложениях.
Улучшения Инструментов XCode описывают изменения в XCode.
Функции BSD и Ядра описывают изменения в частях UNIX/POSIX OS X.
Для подробного списка изменений API посмотрите OS X v10.9 API Diffs.
Файл любые отчеты об ошибках об этом выпуске или этой документации в http://bugreport .apple.com/.
Основные функции
Следующие разделы выделяют функции OS X v10.9, охватывающие многократные технологические области или которые имеют иначе особое значение для большинства разработчиков.
Дремота приложения
Дремота приложения сокращает потребляемую мощность путем завершенной приостановки выполнения приложения, когда это удовлетворяет определенные критерии. Это гарантирует, что Ваше приложение периодически не просыпается для выполнения ненужной работы. Приложение считается кандидатом на сон если:
Это не видимо — если все окна приложения или скрыты другими окнами или минимизированы в скрытом прикреплении, и приложение не находится на переднем плане
Это не является слышимым
Это явно не отключило автоматическое завершение
Это не взяло утверждений управления питанием
Когда всем этим условиям удовлетворяют, OS X может поместить приложение для сна. В то время как спящий, приложение помещается в очередь планирования, редко получающую фактическое время на CPU.
Приложение просыпается автоматически, когда пользователь приносит приложение к переднему плану или когда приложение получает сообщение Маха или событие Apple.
К поддерживающей деятельности, которая не должна быть приостановлена, NSProcessInfo
класс имеет три новых метода —beginActivityWithOptions:reason:
, endActivity:
, и performActivityWithOptions:reason:block:
— сказать OS X, что Ваше приложение активно делает что-то важное. Эти методы делают две вещи:
Позвольте Вашему приложению временно приостанавливать неактивный сон, сон дисплея, внезапное завершение и автоматическое завершение на время определенной работы
Позвольте Вашему приложению временно увеличивать точность таймера планировщика, в то время как Ваше приложение выполняет критические по отношению к задержке операции
Для получения дополнительной информации см. Информацию о версии Основы для OS X v10.10.
Тегирование
В Средстве поиска пользователь может теперь добавить произвольные теги к файлам и папкам, обеспечив дополнительные группировки, независимые от иерархической структуры папок. Пользователь может позже искать элементы их тегами и может присвоить цвета подсветки файлам на основе их тегов.
Как разработчик приложений, Ваше приложение может запросить, добавить и удалить теги, связанные с определенным URL путем получения или установки NSURLTagNamesKey
свойство на URL. Кроме того, Ваше приложение может указать, должна ли панель сохранения показать поле имен тега и может установить начальный набор по умолчанию, наклеивает NSSavePanel
объект, который может тогда изменить пользователь.
Для получения дополнительной информации см. Информацию о версии Основы для OS X v10.10.
Функции уровня платформы
Следующие разделы выделяют изменения в платформах и технологиях в OS X v10.9.
Новые платформы
Следующие платформы были добавлены в OS X v10.9:
Набор AV (
AVKit.framework
). Набором AV является современный API для слияния возможностей воспроизведения носителей в приложения. Набор AV предоставляет услуги уровня представления для воспроизведения носителей, вместе с контролем за работой пользователей, навигацией главы и поддержкой подзаголовков и закрытого ввода субтитров. Основанный на самой современной технологии носителей OS X, Набор AV является идеальной начальной точкой для разработчиков, надеющихся переходить их основанные на QuickTime приложения к Основе AV.Для получения дополнительной информации читайте Ссылку Платформы AVKit.
Набор Sprite (
SpriteKit.framework
). Набор Sprite является мощной графической платформой для разработки 2D игр, таких как прокручивающие сторону стрелки, головоломки и игры платформы.При использовании Набора Sprite Вы устанавливаете различные атрибуты спрайта, такие как позиция, размер, вращение, сила тяжести и масса. Встроенная поддержка действий и физики заставляет анимации выглядеть реальными, и системы частиц позволяют Вам создать существенные игровые эффекты, такие как огонь, взрывы и дым. Основанное на OpenGL средство рендеринга Набора Sprite тогда эффективно анимирует 2D сцены на основе параметров, которые Вы указываете.
Для помощи Вам в разработке игр на основе Набора Sprite XCode предоставляет поддержку для создания атласа текстуры и включает редактора частицы.
Для получения дополнительной информации читайте Руководство по программированию SpriteKit.
Набор карты (
MapKit.framework
). Набор карты обеспечивает интерфейс для встраивания карт непосредственно в Ваши окна приложения App Store и представления. Это также предоставляет поддержку для аннотирования карты, добавления оверлейных программ и выполнения геокодирующих реверс поисков для определения placemark информации для данного набора координат карты.Для получения дополнительной информации читайте Ссылку Платформы MapKit.
Игровой контроллер (
GameController.framework
). Игровой контроллер обеспечивает высокоуровневый Objective C API для принятия ввода от игровых контроллеров Made-for-iPhone/iPod/iPad (MFi) в играх. Спецификация игрового контроллера MFi обеспечивает стандартный путь к вспомогательному разработчики для создания контроллеров с аналоговыми геймпадами, кнопками, триггерами и палками ползунка. Игровые контроллеры объявляют поддержку стандартного или расширенного профиля, указывающего, какие средства управления они обеспечивают. Игры могут поддерживать или профиль или обоих, и можно адаптировать их поведение, согласно которому средства управления доступны.Для получения дополнительной информации читайте Руководство по программированию Игрового контроллера.
Доступность носителей (
MediaAccessibility.framework
). Доступность носителей предоставляет поддержку для получения и установки предпочтений глобального пользователя, управляющих поведением и появлением заголовков и подзаголовков при проигрывании фильмов.Библиотека носителей (
MediaLibrary.framework
). Библиотека носителей предоставляет поддержку для доступа к носителям, предоставленным приложениями iLife, Апертурой, Final Cut Pro, Логикой и папкой Movies пользователя из поигравших в песочнице приложений.Для получения дополнительной информации читайте Ссылку Платформы Библиотеки Носителей.
Библиотека iTunes (
iTunesLibrary.framework
в/Library/Frameworks
). Библиотека iTunes предоставляет поддержку для доступа к носителям, предоставленным iTunes из поигравших в песочнице приложений. Эта платформа считается общедоступным API с iTunes 11. Для получения дополнительной информации посмотрите Ссылку Платформы Библиотеки iTunes.
устаревшие (deprecated) платформы
Время от времени Apple добавляет макросы осуждения к APIs, чтобы указать, что тот APIs больше не должен использоваться в активной разработке. Когда осуждение происходит, это не непосредственный конец жизни к указанному API. Вместо этого это - начало льготного периода для перехода прочь что API и на более новые и более современные замены. Осуждаемый APIs обычно остается существующим и применимым в системе для некоторого разумного количества времени мимо выпуска, в котором они осуждались. Однако активная разработка на них прекращается, и APIs получает только незначительные изменения, чтобы разместить патчи безопасности или исправить другие критические ошибки. Осуждаемый APIs может быть удален полностью из будущей версии операционной системы.
Как разработчик, важно, чтобы Вы избегали использования, осудил APIs в Вашем коде как можно скорее. Как минимум новый код, который Вы пишете, никогда не должен использовать, осудил APIs. И если у Вас есть существующий код, использующий осуждаемый APIs, необходимо обновить тот код как можно скорее. К счастью, компилятор генерирует предупреждения каждый раз, когда он определяет использование осуждаемого API в Вашем коде. Можно использовать те предупреждения разыскать и удалить все ссылки на тот APIs.
Следующие платформы осуждаются в OS X v10.9:
Мгновенная платформа сообщения
Платформа QuickTime
Платформа QTKit (за исключением
QTMovieModernizer
)
Мгновенная платформа сообщения заменяется Социальной платформой. Поскольку приложение сообщений больше не обеспечивает функциональность, которой Мгновенная платформа сообщения требует в OS X v10.9, и позже эта платформа всегда возвращает пустой список контактов.
QuickTime и платформы QTKit заменяются Набором AV и Основой AV. Можно узнать больше о переходе к Набору AV и Основе AV путем чтения Переходящий Код QTKit к Основе AV.
Недавно добавленный QTMovieModernizer
класс в QTKit предоставляет поддержку для преобразования носителей, закодированных с помощью более старых кодеков в современные форматы, которые прямо совместимы с Основой AV.
Удаленные платформы
Следующие платформы больше не являются частью OS X SDK с версии 10.9:
Message
— Используйте события Apple, чтобы попросить, чтобы Почтовое приложение отправило почту вместо этого.ServerNotification
— Используйте уведомления нажатия вместо этого.
Изменения платформы AppKit
Следующие разделы выделяют изменения и улучшения в платформе AppKit. Для получения дальнейшей информации об изменениях в интерфейсах программирования AppKit, см. Информацию о версии AppKit для OS X v10.10.
Улучшенная многократная поддержка монитора
В OS X v10.9, многократная поддержка монитора улучшена, чтобы позволить Вам прикреплять полноэкранное приложение на экран, продолжая использовать другие приложения на втором дисплее. Чтобы поддерживать эту функцию, AppKit добавил два новых NSWindow
методы делегата: customWindowsToEnterFullScreenForWindow:onScreen:
и window:startCustomAnimationToEnterFullScreenOnScreen:withDuration:
.
Быстро реагирующая прокрутка
Быстро реагирующая прокрутка является улучшением AppKit, делающим прокрутку более гладкого. Это включает два существенных изменения к способу, которым Ваше приложение рисует содержание:
Прокрутите представления, просят их дочерние представления рисовать дополнительное содержание вне их нормальной области представления так, чтобы содержание могло быть сразу сделано доступным для прокрутки целей. Эта дополнительная поддержка окна сохранена в purgeable памяти для минимизации дополнительной разбивки на страницы.
Поток прокрутки пытается перерисовать представление в 60 кадрах в секунду, но это отступает, если приложение неспособно поддержать на высоком уровне.
Прокручивающие события обрабатываются на фоновом потоке.
Большинство приложений автоматически получает это быстро реагирующее поведение прокрутки. Однако некоторые представления должны явно выбрать в, включая поддержанные уровнем представления, пользовательское представление прокрутки или подклассы представления клипа то переопределение drawRect:
, NSSurface
- основанные представления документа, прозрачные представления документа и представления документа, переопределяющие lockFocus
метод.
Для представлений, в которых автоматически включена быстро реагирующая прокрутка, изменение поведения должно быть полностью очевидно для Вас как разработчик. Однако, если Ваше приложение показывает необычное поведение при прокрутке, ошибки файла.
Для получения дополнительной информации см. Информацию о версии AppKit для OS X v10.10.
Представления штабеля
NSStackView
новое Автоматическое Основанное на расположении представление, создающее и управляющее, ограничения должны были создать горизонтальные или вертикальные штабели представлений. Когда представления удалены или добавлены к его штабелю, это динамично добавляет и удаляет свои ограничения. С настройкой это может также реагировать и влиять на расположение вокруг этого — неявно рост и уменьшение, когда представления становятся удаленными или добавленными, отбрасывая представления от его штабеля, когда его размер становится слишком маленьким и т.д.
Контроллер браузера библиотеки носителей
NSMediaLibraryBrowserController
новый класс контроллера, который может обеспечить просмотр и перетащить от библиотек носителей, предоставленных платформой Библиотеки Носителей.
Базовые изменения платформы изображения
Базовое Изображение теперь использует в своих интересах OpenCL на GPU для выполнения операций обработки изображений на недавнем Macs. Это также добавляет дополнительные стандартные фильтры (CIFilter
) это выполняет общие низкоуровневые операции, использующиеся через огромное количество задач обработки изображений.
Базовые изменения платформы служб
Следующий APIs был удален в OS X v10.9 SDK:
Откройте Transport
Управление питанием (
Power.h
)
Дисковые арбитражные изменения платформы
DAApprovalSessionRef
тип был заменен DASessionRef
всюду по этой платформе. (Два типа функционально эквивалентны.)
Изменения платформы основы
Следующие разделы выделяют изменения и улучшения в платформе Основы. Для получения дальнейшей информации об изменениях в интерфейсах программирования Основы, см. Информацию о версии Основы для OS X v10.10.
NSCalendar обеспечивает более сложное вычисление даты и времени
NSCalendar
класс добавляет enumerateDatesStartingAfterDate:matchingComponents:options:usingBlock:
метод для итерации вперед или назад через даты, соответствующие определенный образец до блока обратного вызова, говорит ему останавливаться. Например, NSCalendar
объект мог бы вызвать Ваш блок в течение каждой субботы, начинающейся с текущей даты.
Кроме того, существующий NSCalendar
методы, преобразовывающие между датой и компонентами даты теперь, используют более строгую проверку параметра для предотвращения неблагоразумных комбинаций идентификации дня calendrical модули. Допустимые комбинации:
День месяца месяца года эры
Будний-ordinality рабочий день месяца года эры
Рабочий день недели месяца месяца года эры
Год эры в течение недели рабочего дня недели года года
вместе с различными безопасными подмножествами вышеупомянутого, в сочетании с часом, минутой, и т.д. Например, использование NSYearForWeekOfYearCalendarUnit
и NSYearCalendarUnit
модули в том же вызове к components:fromDate:
теперь возвращает ошибку.
NSURL позволяет Вам исследовать компоненты URL
NSURL
класс и NSURLComponents
класс предоставляет значительно расширенную поддержку для получения и работы с частями URLs, включая компоненты контура, узел, порт, строки запроса, и т.д. Этот класс заменяет функциональность компонента контура в NSString
.
Кроме того, NSURL
класс предоставляет поддержку для получения, и установка наклеивает файлы и каталоги.
NSProcessInfo теперь предоставляет поддержку управления питанием
NSProcessInfo
класс обеспечивает beginActivityWithOptions:reason:
, endActivity:
, и performActivityWithOptions:reason:block:
методы (и связанные константы) для того, чтобы временно приостановить внезапное завершение, автоматическое завершение, регулируя (Дремота Приложения), и неактивный и сон дисплея.
NSProgress обеспечивает уведомления прогресса
NSProgress
класс обеспечивает стандартный механизм, который может использоваться для обеспечения уведомления о прогрессе продолжительных операций — загрузок, например — к заинтересованным сторонам.
Поддержки NSNetServices, прислушивающиеся к соединениям
NSNetService
класс теперь обеспечивает легкий способ прислушаться к входящим соединениям. Если Вы устанавливаете NSNetServiceListenForConnections
флаг опции в значении опций передал publishWithOptions:
, OS X автоматически обрабатывает все управление соединениями для Вас.
Когда клиент соединяется, NSNetService
вызовы объектов его делегат netService:didAcceptConnectionWithInputStream:outputStream:
метод, передавая его пара NSStream
объекты, представляющие недавно установленное соединение.
Поддержка NSData Base64
NSData
класс теперь обеспечивает следующие методы для преобразования в и от кодирования Base64:
initWithBase64EncodedString:options:
base64EncodedStringWithOptions:
initWithBase64EncodedData:options:
base64EncodedDataWithOptions:
NSURLSession обеспечивает фоновую загрузку и улучшенную конфигурируемость
NSURLSession
классом является новый API для того, чтобы сделать Запросы HTTP в контексте браузера или в других ситуациях, где связаны многократные запросы. Когда те загрузки завершены, это предоставляет возможность для возобновления загрузок и загрузок в фоновом режиме с уведомлением. Это также предоставляет поддержку для пользовательских хранилищ cookie, аутентификации, и кэширующийся способом, обеспечивающим большую прозрачность, и это дает Вашему приложению больший контроль по сравнению с ранее NSURL
APIs.
Изменения платформы ядра JavaScript
Платформа Ядра JavaScript (JavaScriptCore.framework
) теперь обеспечивает межплатформенный ( OS X и iOS) классы обертки Objective C для многих стандартных объектов JavaScript. Используйте эту платформу, чтобы оценить код JavaScript и проанализировать данные JSON. Для получения информации о классах этой платформы посмотрите заголовочные файлы.
Откройте Directory Framework Changes
Открыть плагин Directory API был перепроектирован для OS X v10.9. Существующий Открывают, плагины Directory должны быть переписаны для приспосабливания новому API. Новая сменная схема значительно менее сложна, чем предыдущая схема, и шаблоны XCode доступны для создания создания этих плагинов проще. Для получения дополнительной информации посмотрите, Открывают Directory Release Notes.
Изменения платформы OpenGL
OS X v10.9 поддерживает Профиль Ядра OpenGL 4.1 на Macs с GPUs, которые способны к поддержке его набора функций. Считайте Руководство по программированию OpenGL для Mac для приобретения знаний о выборе профиля.
Изменения платформы OpenCL
OS X v10.9 поддерживает OpenCL 1.2 с помощью GPU на недавнем Macs, включая тех с Intel HD Graphics 4000.
Изменения концепции безопасности
Концепция безопасности (Security.framework
) добавляет поддержка синхронизации паролей между устройствами пользователя через iCloud. Приложения могут отметить свои элементы цепочки для ключей для iCloud через новый атрибут цепочки для ключей. Для получения дополнительной информации об этом атрибуте, посмотрите заголовочные файлы платформы. Для получения общей информации о цепочке для ключей, см. Руководство по программированию Keychain Services.
Кроме того, много связанных с доверием iOS APIs, такой как SecTrustCopyExceptions
, теперь доступны в OS X.
Изменения платформы набора хранилища
OS X v10.9 поддерживает автовозобновляемые подписки для Покупок В приложении.
Изменения платформы WebKit
В OS X v10.9, хранение защищенного cookie больше не совместно используется Safari и WebKit.
Функции приложения
Известный в OS X v10.9 являются изменениями в сообщениях.
Сообщения
Функциональность видео-чата была удалена из приложения сообщений в OS X v10.9, в пользу стандартизированной, совместимой с iOS функциональности видео-чата, встроенной в приложение FaceTime. Это изменение потенциально влияет на разработчиков двумя способами:
Мгновенное сообщение Платформа больше не поддерживается, и все методы возвращают пустой список. Используйте Социальную платформу вместо этого.
Многоканальные видео-чаты больше не поддерживаются.
Улучшения инструментов XCode
Xcode 5.0 добавляет многочисленные опции, поддерживающие OS X v10.9, особенно:
Отладчик LLDB теперь поддерживает отладку расширения ядра; для узнавания больше о переходе от GDB до LLDB считайте Карту Команды LLDB и Руководство по быстрому началу работы LLDB.
Отладчик GDB был удален.
Для получения дополнительной информации об улучшениях XCode, посмотрите Новые функции и возможности в XCode.
BSD и функции ядра
BSD, драйвер и уровни ядра OS X были улучшены следующим образом:
OS X поддерживает удаленное ядро и отладку расширения ядра с помощью LLDB.
OS X v10.9 набор отладки ядра теперь включает kext макросы для LLDB.
Разработчики, производящие расширения ядра для OS X v10.9, должны подписать свои расширения с Разработчиком сертификат ID и установить их в
/Library/Extensions/
. Расширения в/Library/Extensions/
не загружаются, если они должным образом не подписываются.Когда без знака или неправильно вошло в систему расширение ядра, OS X v10.9 также предупреждает пользователя
/System/Library/Extensions/
загружается в ядро или добавляется к kext кэшу.