mccallum@gnu.ai.mit.edu
)richard@brainstorm.co.uk
)Version: 1.146
Date: 2005/02/22 11:22:44
Copyright: (C) 1995, 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
- Declared in:
- Foundation/NSData.h
- Conforms to:
- NSCoding
- NSCopying
- NSMutableCopying
Standards:
- MacOS-X
- OpenStep
- GNUstep
Class for storing a byte array. Methods for initializing from memory a file, or the network are provided, as well as the ability to write to a file or the network. If desired, object can take over management of a pre-allocated buffer (with malloc or similar), free'ing it when deallocated.
The data buffer at any given time has a capacity, which is the size of its allocated memory area, in bytes, and a length, which is the length of data it is currently storing.
Method summary
Returns an empty data object.
Returns an autoreleased data object containing data copied from bytes and with the specified length. Invokes -initWithBytes:length:
Returns an autoreleased data object encapsulating
the data at bytes and with the specified
length. Invokes
-initWithBytesNoCopy:length:freeWhenDone:
with YES
Returns an autoreleased data object encapsulating the data at bytes and with the specified length. Invokes -initWithBytesNoCopy:length:freeWhenDone:
Returns a data object encapsulating the contents of the specified file. Invokes -initWithContentsOfFile:
Returns a data object encapsulating the contents of the specified file mapped directly into memory. Invokes -initWithContentsOfMappedFile:
Retrieves the information at the specified url and returns an NSData instance encapsulating it.
Returns an autoreleased instance initialised by copying the contents of data.
Returns a pointer to the data encapsulated by the receiver.
Returns a short description of this object.
Copies data from buffer starting from cursor. Deprecated. Use [-getBytes:] and related methods instead.
Copies data from buffer starting from cursor. Deprecated. Use [-getBytes:] and related methods instead.
Description forthcoming.
Retrieve an int from this data, which is assumed to be in network (big-endian) byte order. Cursor refers to byte position.
Retrieve an int from this data, which is assumed to be in network (big-endian) byte order. Index refers to byte position.
Retrieve ints from intBuffer, which is assumed to be in network (big-endian) byte order. Count refers to number of ints, but index refers to byte position.
Retrieve ints from intBuffer, which is assumed to be in network (big-endian) byte order. Count refers to number of ints, but index refers to byte position.
Copies the contents of the memory encapsulated by
the receiver into the specified buffer. The
buffer must be large enough to contain
-length
bytes of data... if it isn't then a crash is likely
to occur.
Invokes
-getBytes:range:
with the range set to the whole of the receiver.
Copies length bytes of data from the
memory encapsulated by the receiver into the
specified buffer. The
buffer must be large enough to contain
length bytes of data... if it isn't then a
crash is likely to occur.
Invokes
-getBytes:range:
with the range set to iNSMakeRange(0,
length)
Copies data from the memory encapsulated by the
receiver (in the range specified by
aRange) into the specified
buffer.
The buffer must
be large enough to contain the data... if it isn't then
a crash is likely to occur.
If aRange
specifies a range which does not entirely lie
within the receiver, an exception is raised.
Makes a copy of bufferSize bytes of data
at aBuffer, and passes it to
-initWithBytesNoCopy:length:freeWhenDone:
with a YES
argument in order to initialise the receiver. Returns the result.
Invokes
-initWithBytesNoCopy:length:freeWhenDone:
with the last argument set to YES
. Returns the resulting initialised data object (which may not be the receiver).
Initialises the receiver.
The value of
aBuffer is a pointer to something to be
stored.
The value of bufferSize
is the number of bytes to use.
The value of
shouldFree specifies whether the receiver
should attempt to free the memory pointer to by
aBuffer when the receiver is deallocated
... ie. it says whether the receiver owns the
memory. Supplying the wrong value here will lead to
memory leaks or crashes.
Initialises the receiver with the contents of
the specified file.
Returns the resulting
object.
Returns nil
if the file
does not exist or can not be read for some reason.
Initialize with data pointing to contents of file at path. Bytes are only "swapped in" as needed. File should not be moved or deleted for the life of this object.
Initialize with data pointing to contents of URL, which will be retrieved immediately in a blocking manner.
Initializes by copying data's bytes into a new buffer.
Returns a boolean value indicating if the receiver and other contain identical data (using a byte by byte comparison). Assumes that the other object is an NSData instance... may raise an exception if it isn't.
Returns the number of bytes of data encapsulated by the receiver.
Returns an NSData instance encapsulating the memory
from the reciever specified by the range
aRange.
If aRange
specifies a range which does not entirely lie
within the receiver, an exception is raised.
Writes a copy of the data encapsulated by the
receiver to a file at path. If the
useAuxiliaryFile flag is
YES
, this writes to a temporary file
and then renames that to the file at path,
thus ensuring that path exists and does
not contain partially written data at any point.
On success returns YES
, on failure
returns NO
.
Writes a copy of the contents of the receiver to the specified URL.
- Declared in:
- Foundation/NSData.h
Standards:
- MacOS-X
- OpenStep
- GNUstep
Mutable version of NSData . Methods are provided for appending and replacing bytes in the buffer, which will be grown as needed.
Method summaryNew instance with buffer of given numBytes with length of valid data set to zero. Note that capacity will be automatically increased as necessary.
New instance with buffer of capacity and valid data size equal to given length in bytes. The buffer contents are set to zero. The length of valid data is set to zero. Note that buffer will be automatically increased as necessary.
Appends bufferSize bytes from aBuffer to data, increasing capacity if necessary.
Copies and appends data from other to data, increasing capacity if necessary.
Increases buffer length by given number of bytes, filling the new space with zeros.
Initialize with buffer capable of holding size bytes. The length of valid data is initially set to zero.
Initialize with buffer of capacity equal to length, and with the length of valid data set to length. Data is set to zero.
Returns a pointer to the data storage of the
receiver.
Modifications to the memory
pointed to by this pointer will change the
contents of the object. It is important that
your code should not try to modify the memory beyond
the number of bytes given by the
-length
method.
NB. if the object is released, or any method that changes its size or content is called, then the pointer previously returned by this method may cease to be valid.
This is a 'primitive' method... you need to implement it if you write a subclass of NSMutableData.
Replaces the bytes of data in the
specified range with a copy of the new
bytes supplied.
If the location of
the range specified lies beyond the end of the data (
[self length] < range.location
) then
a range exception is raised.
Otherwise, if the
range specified extends beyond the end of the data,
then the size of the data is increased to accomodate
the new bytes.
Replace the content of the receiver which lies in
aRange with the specified
length of data from the buffer pointed to
by bytes.
The size of the receiver is
adjusted to allow for the change.
Set bytes in aRange to 0.
Does not act as the name suggests. Instead, serializes length itself as an int into buffer.
Description forthcoming.
Serialize an int into this object's data buffer, swapping it to network (big-endian) byte order first.
Serialize an int into this object's data buffer at index (replacing anything there currently), swapping it to network (big-endian) byte order first.
Serialize one or more ints into this object's data buffer, swapping them to network (big-endian) byte order first.
Serialize one or more ints into this object's data buffer at index (replacing anything there currently), swapping them to network (big-endian) byte order first.
Replaces contents of buffer with contents of data's buffer, increasing or shrinking capacity to match.
Sets the length of the NSMutableData object. If the length is increased, the newly allocated data area is filled with zero bytes.
This is a 'primitive' method... you need to implement it if you write a subclass of NSMutableData.
- Declared in:
- Foundation/NSData.h
Standards:
- NotOpenStep
- NotMacOS-X
- GNUstep
Provides some shared-memory extensions to NSData .
Method summaryNew instance with given bytes in shared memory.
New instance with given shared memory ID.
Description forthcoming.
- Declared in:
- Foundation/NSData.h
Standards:
- NotOpenStep
- NotMacOS-X
- GNUstep
Extension methods for the NSData class- mainly conversion utilities.
Method summary
Returns an NSString object containing an ASCII
hexadecimal representation of the receiver.
This means that the returned object will contain
exactly twice as many characters as there are bytes
as the receiver, as each byte in the receiver is
represented by two hexadecimal digits.
The high order four bits of each byte is encoded before
the low order four bits. Capital letters 'A' to 'F' are
used to represent values from 10 to 15.
If you
need the hexadecimal representation as raw byte data,
use code like -
hexData = [[sourceData hexadecimalRepresentation] dataUsingEncoding: NSASCIIStringEncoding];
Initialises the receiver with the supplied
string data which contains a hexadecimal
coding of the bytes. The parsing of the
string is fairly tolerant, ignoring
whitespace and permitting both upper and lower
case hexadecimal digits (the
-hexadecimalRepresentation
method produces a string using only
uppercase digits with no white spaqce).
If
the string does not contain one or more
pairs of hexadecimal digits then an exception is
raised.
Creates an MD5 digest of the information stored in
the receiver and returns it as an autoreleased 16 byte
NSData object.
If you need to produce a
digest of string information, you need to decide
what character encoding is to be used and convert your
string to a data object of that encoding type first
using the
[NSString -dataUsingEncoding:]
method -
myDigest = [[myString dataUsingEncoding: NSUTF8StringEncoding] md5Digest];If you need to use the digest in a human readable form, you will probably want it to be seen as 32 hexadecimal digits, and can do that using the -hexadecimalRepresentation method.
Decodes the source data from uuencoded and return
the result.
Returns the encoded file name in
namePtr if it is not null. Returns the
encoded file mode in modePtr if it is
not null.
Encode the source data to uuencoded.
Uses the
supplied name as the filename in the
encoded data, and says that the file
mode is as specified.
If no
name is supplied, uses
untitled
as the name.
- Declared in:
- Foundation/NSData.h
Standards:
- NotOpenStep
- NotMacOS-X
- GNUstep
Provides some additional methods to NSData .
Method summaryReturns current capacity of data buffer.
Description forthcoming.
Description forthcoming.
Sets current capacity of data buffer. Unlike -setLength: , this will shrink the buffer if requested.
Return shared memory ID, if using one, else -1.