2012-09-17 19 views

Respuesta

7

También puede crear una NSInputStream de un objeto NSData, si necesita la interfaz de lectura:

NSData *data = ...; 
NSInputStream *readData = [[NSInputStream alloc] initWithData:data]; 
[readData open]; 

Sin embargo, debe tener en cuenta que initWithDatacopia el contenido de los datos.

20

"How to read binary bytes in NSData?" puede ayudarle a:

NSString *path = @"…put the path to your file here…"; 
NSData * fileData = [NSData dataWithContentsOfFile: path]; 
const char* fileBytes = (const char*)[fileData bytes]; 
NSUInteger length = [fileData length]; 
NSUInteger index; 

for (index = 0; index<length; index++) 
{ 
    char aByte = fileBytes[index]; 
    //Do something with each byte 
} 
0

Una de las maneras más simples es usar NSData getBytes.

NSData *data = ...; 
char buffer[numberOfBytes]; 
[NSData getBytes:buffer range:NSMakeRange(position, numberOfBytes)]; 

donde la posición y la longitud es la posición que desea leer de en NSData y la longitud es la cantidad de bytes que desea leer. No es necesario copiar