getBytes: maxLength: usedLength: encoding: options: range: remainingRange:
Gets a given range of characters as bytes in a specified encoding.
- (BOOL)getBytes:(void *)buffer maxLength:(NSUInteger)maxBufferCount usedLength:(NSUInteger*)usedBufferCount encoding:(NSStringEncoding)encoding options:(NSStringEncodingConversionOptions)options range:(NSRange)range remainingRange:(NSRangePointer)leftover
Parameters
- buffer
- A buffer into which to store the bytes from the receiver. The returned bytes are not
NULL
-terminated. - maxBufferCount
- The maximum number of bytes to write to buffer.
- usedBufferCount
- The number of bytes used from buffer. Pass
NULL
if you do not need this value. - encoding
- The encoding to use for the returned bytes.
- options
- A mask to specify options to use for converting the receiver’s contents to encoding (if conversion is necessary). [NSString getBytes]
- range
- The range of characters in the receiver to get.
- leftover
- The remaining range. Pass
NULL
If you do not need this value.
Return Value
YES
if some characters were converted, otherwise NO
.Discussion of [NSString getBytes]
Conversion might stop when the buffer fills, but it might also stop when the conversion isn't possible due to the chosen encoding.
Example of [NSString getBytes]
NSUInteger numberOfBytes = [message lengthOfBytesUsingEncoding:NSUnicodeStringEncoding];
void *buffer = malloc(numberOfBytes);
NSUInteger usedLength = 0;
NSRange range = NSMakeRange(0, [message length]);
BOOL result = [message getBytes:buffer maxLength:numberOfBytes usedLength:&usedLength encoding:NSUnicodeStringEncoding options:0 range:range remainingRange:NULL];
...
free(buffer);
Example of [NSString getBytes]
NSString *src;
char dest[16];
NSUinteger destlen;
[src getBytes:dest
maxLength:sizeof(dest) - 1
usedLength:&destlen
encoding:NSUTF8StringEncoding
options:0
range:NSMakeRange(0, [src length])
remainingRange:NULL];
dest[destlen] = '\0';
Example of [NSString getBytes]
NSUInteger length = [str length];
NSUInteger bufferSize = 500;
char buffer[bufferSize] = {0};
[str getBytes:buffer
maxLength:(bufferSize - 1)
usedLength:NULL
encoding:NSUTF8StringEncoding
options:0
range:NSMakeRange(0, length)
remainingRange:NULL];