Объекты данных

Объекты данных являются объектно-ориентированными обертками для буферов байта. В этих объектах данных простые выделенные буферы (т.е. данные без встроенных указателей) берут поведение других объектов — т.е. они инкапсулируют данные и обеспечивают операции для управления теми данными. Объекты данных обычно используются, чтобы хранить данные. Они также полезны в Интернете и приложениях интранет, потому что данные, содержавшиеся в объектах данных, могут быть скопированы или перемещены между приложениями.

Размер данных, что экземпляр NSData или NSMutableData может перенестись подвергается зависимым от платформы ограничениям — см. Ссылку класса NSData. Когда размер данных является больше, чем несколько страниц памяти, объект использует управление виртуальной памятью. Объект данных может также обернуть существующие ранее данные, независимо от того, как были выделены данные. Объект не содержит информации о самих данных (таких как его тип); ответственность за решение, как использовать данные, лежит на клиенте. В частности это не обработает свопинг порядка байтов, когда распределено между машинами с прямым порядком байтов и с обратным порядком байтов. Вместо этого используйте NSValue для введенных данных.

Объекты данных обеспечивают независимый от операционной системы способ получить преимущества от памяти копии на записи. Метод копии на записи означает, что, когда данные копируются через копию виртуальной памяти, фактическая копия данных не сделана, пока нет попытка изменить его.

Как правило, Вы указываете байты и длину байтов, сохраненных в объекте данных при создании того объекта. Можно также извлечь байты данного диапазона от объекта данных, сравнить данные, хранившие в двух объектах данных, и записать данные в URL. Когда необходимо изменить данные после создания, Вы используете непостоянные объекты данных. Можно усечь, расширить длину, добавить данные к и заменить диапазон байтов в непостоянном объекте данных.