Базовая Информация о версии Основы для OS X v10.9
Сгенерированный документ: 08.11.2013 18:52:43 - 0800
Copyright © 2013 информации о версии OS X Apple Inc Все права защищены.
OS X 10.9 информации о версии платформа CoreFoundation
CoreFoundation (иначе CF) является платформой, обеспечивающей APIs C для строк, наборов, пользовательских настроек, списков свойств, плагинов, пакетов, уведомлений, runloop, и т.д. Этот APIs разработан с мобильностью, производительностью и непротиворечивостью в памяти, и доступен приложениям Какао и Углерода.
CoreFoundation доступен непосредственно как общедоступная платформа. Но это также в платформе защиты CoreServices и очень часто вытягивается в Ваше приложение просто путем соединения против CoreServices или одного из высокоуровневых зонтиков, таких как Какао, которые вводят CoreServices.
CFURL
Схема URL «файла» определяется так, чтобы никакие полномочия, пустой узел и «localhost» все среднее значение машина конечного пользователя. Для сокращения использования памяти файл, объекты URL, создаваемые с путями файловой системы или от представления файловой системы больше, не включают строку узла «localhost».
Это изменение означает, что CFURLCopyHostName больше не возвращает строку «localhost» для файла URLs и вместо этого возвратит NULL, и CFURLGetByteRangeForComponent возвратит kCFNotFound для kCFURLComponentHost.
Использование kCFURLHFSPathStyle осуждается. Файловый менеджер Углерода, использующий пути стиля HFS, осуждается. Пути стиля HFS ненадежны, потому что они могут произвольно обратиться к многократным объемам, если те объемы имеют идентичные имена томов. Необходимо вместо этого использовать kCFURLPOSIXPathStyle по мере возможности.
CFURLIsFileReferenceURL () был добавлен для разрешения идентификации ссылки на файл URLs.
CFURLCreateFromFSRef () и CFURLGetFSRef () осуждаются, потому что осуждается Файловый менеджер Углерода.
Объекты URL создали из строк URL, где длина строки URL равнялась точно 1, больше не может создаваться с символами, не позволенными в строках URL. Это изменение влияет на CFURLCreateWithString CFURL (), и методы NSURL-initWithString:-initWithString:relativeToURL: +URLWithString: и +URLWithString:relativeToURL:.
Если данные URL являются очень большими, описания длинного URLs со схемой данных могут быть усеченными.
CFURLAccess
CFURLAccess был осужден. Предложенная замена для URLs с сетевыми схемами (http, https, ftp, данные) является NSURLConnection, или еще лучше, новый APIs NSURLSession. Предложенная замена для URLs со схемой файла является фундаментальными классами NSFileManager, NSFileHandle и NSURL или классы CoreFoundation CFStream и CFURL.
CFPreferences поддерживают для Security Application Groups (Игра в песочнице)
Для приложений, которые являются частью Security Application Group, домены, соответствующие имя права группы приложения защиты на приложении, будут совместно использованы среди всех приложений в группе и сохранены в контейнере группы (это только применяется к kCFPreferencesCurrentUser).
Изменения в поведении к CFPreferencesGetAppBooleanValue и CFPreferencesGetAppIntegerValue
CFPreferences был обновлен для соответствия поведения NSUserDefault в парсинге. В частности, «1» и «0» будет теперь интерпретироваться как их соответствующие булевы значения, если ищется через CFPreferencesGetAppBooleanValue, булевы значения будут интерпретироваться как 0 или 1, когда ищется через CFPreferencesGetAppIntegerValue, и плавание или двойные значения будут усеченными, когда возвращено из CFPreferencesGetAppIntegerValue. Однако в случае плавания к интервалу, «существует и имеет допустимый формат», параметром будет ложь.
CFString
Параметр опций за CFStringFold был изменен от CFOptionFlags до CFStringCompareFlags.
Для приложений, созданных против 10,9 SDK, запоминающее устройство для объектов CFString с 8-разрядным содержанием было изменено на ASCII, что означает, что успешно выполнится больше запросов к CFStringGetCStringPtr (). Это также означает, что больше объектов CFString может закончиться с запоминающим устройством UTF-16. Это изменение, при редких обстоятельствах, может вызвать проблемы совместимости, начиная с некоторого CFStringGetCStringPtr () раньше успешно выполнявшиеся вызовы могут теперь возвратить NULL. (Однако большое количество тех, возможно, уже возвращало NULL на других пользовательских языках.)
Предупреждение CFStringGetCStringPtr
Последующая обработка и анализ предыдущего абзаца, мы хотим обеспечить тонкий намек, что функциональный CFStringGetCStringPtr () может возвратить NULL по ряду причин, который может варьироваться от выпуска до выпуска, или фактически от пользовательского языка до пользовательского языка, и вследствие других факторов, которые являются за пределами управления приложения.
Просто, потому что Вы наблюдаете CFStringGetCStringPtr () возврат ненулевого значения для данной строки, это не означает, что это не возвратит NULL для той же строки в будущем или при различных обстоятельствах.
Так, каждый раз, когда Вы вызываете CFStringGetCStringPtr (), следуете за ним с вызовом к CFStringGetCString () в случае возврата NULL:
char buffer[BUFSIZE]; |
const char *ptr = CFStringGetCStringPtr(str, encoding); |
if (ptr == NULL) { |
if (CFStringGetCString(str, buffer, BUFSIZE, encoding)) ptr = buffer; |
} |
Или еще лучше просто вызовите CFStringGetCString (), не беспокоясь CFStringGetCStringPtr ().
Обратите внимание на то, что CFStringGetCString () может также перестать работать, но это произойдет детерминировано, и только на двух обстоятельствах: преобразование из содержания UniChar CFString к указанному кодированию не возможно, или буфер является слишком маленьким.
Copyright © 2015 Apple Inc Все права защищены. Условия использования | Политика конфиденциальности | обновленный: 16.12.2013