Ссылка CFData
CFData и его полученный непостоянный тип, Ссылка CFMutableData, предоставляют поддержку для объектов данных, объектно-ориентированные обертки для буферов байта. Объекты данных позволяют простым выделенным буферам (т.е. данные без встроенных указателей) берут поведение Базовых объектов Основы. CFData создает статические объекты данных, и CFMutableData создает объекты динамических данных. Объекты данных обычно используются для хранения необработанных данных.
Вы используете CFDataCreate и CFDataCreateCopy функции для создания статических объектов данных. Эти функции делают новую копию данных, которыми снабжают. Для создания объекта данных, использующего предоставленный буфер вместо того, чтобы делать отдельную копию используйте CFDataCreateWithBytesNoCopy функция. Вы используете CFDataGetBytes функция для получения байтов и CFDataGetLength функция для получения длины байтов.
CFData “бесплатный соединенный мостом” с его дубликатом Основы Какао, NSData. То, что это означает, - то, что Базовый тип Основы является взаимозаменяемым в вызовах функции или вызовах метода с соединенным мостом объектом Основы. Другими словами, в методе, где Вы видите NSData * параметр, можно передать в a CFDataRef, и в функции, где Вы видите a CFDataRef параметр, можно передать в NSData экземпляр. Это также применяется к конкретным подклассам NSData. Посмотрите Бесплатные Соединенные мостом Типы для получения дополнительной информации о бесплатном образовании моста.
-
Создает неизменный объект CFData использование данных, скопированных с указанного буфера байта.
Объявление
Swift
func CFDataCreate(_allocator: CFAllocator!, _bytes: UnsafePointer<UInt8>, _length: CFIndex) -> CFData!Objective C
CFDataRef CFDataCreate ( CFAllocatorRef allocator, const UInt8 *bytes, CFIndex length );Параметры
allocatorСредство выделения для использования для выделения памяти для нового объекта. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.bytesУказатель на буфер байта, содержащий необработанные данные, которые будут скопированы в
theData.lengthЧисло байтов в буфере (
bytes).Возвращаемое значение
Новый объект CFData, или
NULLесли была проблема, создающая объект. Владение соблюдает Создать Правило.Обсуждение
Необходимо предоставить количество байтов в буфере. Эта функция всегда копирует байты в предоставленном буфере во внутреннюю память.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает неизменную копию объекта CFData.
Объявление
Swift
func CFDataCreateCopy(_allocator: CFAllocator!, _theData: CFData!) -> CFData!Objective C
CFDataRef CFDataCreateCopy ( CFAllocatorRef allocator, CFDataRef theData );Параметры
allocatorСредство выделения для использования для выделения памяти для нового объекта. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.theDataCFData возражают для копирования.
Возвращаемое значение
Неизменная копия
theData, илиNULLесли была проблема, создающая объект. Владение соблюдает Создать Правило.Обсуждение
Полученный объект имеет то же содержание байта как исходный объект, но это является всегда неизменным. Если указанное средство выделения и средство выделения исходного объекта являются тем же, и строка является уже неизменной, эта функция может просто постепенно увеличить сохранить количество, не делая заверенную копию. К вызывающей стороне, однако, полученный объект является истинной неизменной копией, кроме работы было более эффективным.
Используйте эту функцию, когда необходимо будет передать объект CFData в другую функцию значением (не ссылка).
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает неизменный объект CFData из внешнего (клиентского) буфера байта.
Объявление
Swift
func CFDataCreateWithBytesNoCopy(_allocator: CFAllocator!, _bytes: UnsafePointer<UInt8>, _length: CFIndex, _bytesDeallocator: CFAllocator!) -> CFData!Objective C
CFDataRef CFDataCreateWithBytesNoCopy ( CFAllocatorRef allocator, const UInt8 *bytes, CFIndex length, CFAllocatorRef bytesDeallocator );Параметры
allocatorСредство выделения для использования для выделения памяти для нового объекта. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.bytesУказатель на байт буферизует, чтобы использоваться в качестве запоминающего устройства объекта CFData.
lengthЧисло байтов в буфере
bytes.bytesDeallocatorСредство выделения для использования для освобождения внешнего буфера, когда освобожден объект CFData. Если средство выделения по умолчанию подходит с этой целью, передача
NULLилиkCFAllocatorDefault. Если Вы не хотите создаваемый объект CFData освободить буфер (т.е. Вы принимаете на себя ответственность за освобождение его сами), передачаkCFAllocatorNull.Возвращаемое значение
Новый объект CFData, или
NULLесли была проблема, создающая объект. На aNULLвозвратитесь,bytesбуфер оставляют неповрежденным. Владение соблюдает Создать Правило.Обсуждение
Эта функция создает неизменный объект CFData из буфера неструктурированных байтов. Если ситуация не гарантирует иначе, созданный объект не копирует внешний буфер во внутреннюю память, но вместо этого использует буфер в качестве его запоминающего устройства. Однако Вы никогда не должны рассчитывать на объект с помощью внешнего буфера, так как это могло скопировать буфер во внутреннюю память или могло бы даже вывести буфер в целом и использовать альтернативные средние значения для хранения байтов.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает указатель только для чтения на байты объекта CFData.
Объявление
Swift
func CFDataGetBytePtr(_theData: CFData!) -> UnsafePointer<UInt8>Objective C
const UInt8 * CFDataGetBytePtr ( CFDataRef theData );Параметры
theDataCFData возражают для исследования.
Возвращаемое значение
Указатель только для чтения на байты связался с
theData.Обсуждение
Эта функция, как гарантируют, возвратит указатель на внутренние байты объекта CFData. CFData, в отличие от CFString, не скрывает свою внутреннюю память.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Копирует содержание байта объекта CFData к внешнему буферу.
Объявление
Swift
func CFDataGetBytes(_theData: CFData!, _range: CFRange, _buffer: UnsafeMutablePointer<UInt8>)Параметры
theDataCFData возражают для исследования.
rangeДиапазон байтов в
theDataдобираться. Получить все содержание, передачуCFRangeMake(0,CFDataGetLength(theData)).bufferУказатель на буфер байта длины
range.lengthэто выделяется на штабеле или «куче». По возврату буфер содержит требуемый диапазон байтов.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Возвращает число байтов, содержавших объектом CFData.
Объявление
Swift
func CFDataGetLength(_theData: CFData!) -> CFIndexПараметры
theDataCFData возражают для исследования.
Возвращаемое значение
Индекс, указывающий число байтов в
theData.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Находит и возвращает диапазон в объекте данных первого возникновения определенных данных, в данном диапазоне согласно любым данным опциям.
Объявление
Swift
func CFDataFind(_theData: CFData!, _dataToFind: CFData!, _searchRange: CFRange, _compareOptions: CFDataSearchFlags) -> CFRangeObjective C
CFRange CFDataFind ( CFDataRef theData, CFDataRef dataToFind, CFRange searchRange, CFDataSearchFlags compareOptions );Параметры
theDataОбъект данных, в котором можно искать.
dataToFindДанные для нахождения. Не должен быть
NULL.searchRangeДиапазон в
theDataискаться.compareOptionsНемного маски, указывающей параметры поиска.
CFDataSearchFlagsопции могут быть указаны отдельно или объединены с C поразрядноORоператорВозвращаемое значение
Диапазон, представляющий расположение и длину
dataToFindвsearchRange, по модулю опции вcompareOptions. Диапазон возвратился, относительно запуска искавших данных, не переданного - в поисковом диапазоне. Возвраты{kCFNotFound, 0}еслиdataToFindне найден.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
Возвращает идентификатор типа для непрозрачного типа CFData.
Возвращаемое значение
Идентификатор типа для непрозрачного типа CFData.
Обсуждение
Объекты CFMutableData имеют тот же идентификатор типа как объекты CFData.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
Ссылка на неизменный объект CFData.
Объявление
Swift
typealias CFDataRef = CFDataObjective C
typedef const struct __CFData *CFDataRef;Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.0 и позже.
-
A
CFOptionFlagsвведите для указания опций для поиска.Объявление
Swift
struct CFDataSearchFlags : RawOptionSetType { init(_rawValue: CFOptionFlags) init(rawValuerawValue: CFOptionFlags) static var Backwards: CFDataSearchFlags { get } static var Anchored: CFDataSearchFlags { get } }Objective C
typedef enum : CFOptionFlags { kCFDataSearchBackwards = 1UL << 0, kCFDataSearchAnchored = 1UL << 1 } CFDataSearchFlags;Константы
-
BackwardskCFDataSearchBackwardsВыполняет поиск от конца диапазона к началу.
Доступный в OS X v10.6 и позже.
-
AnchoredkCFDataSearchAnchoredВыполняет поиск только на байтах вначале или, если
kCFDataSearchBackwardsтакже указан, в конце поискового диапазона. Никакое соответствие вначале или конец не означают, что ничто не найдено, даже если соответствующая последовательность байтов происходит в другом месте в объекте данных.Доступный в OS X v10.6 и позже.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
