Pregunta

En una aplicación web .NET, la clase BitConverter se está utilizando para convertir INT32 en una matriz de bytes de así decirlo:

byte[] intBuffer = BitConverter.GetBytes(12345);

Ahora estoy tratando de volver a leer esto en una aplicación para iPhone. Tengo los bytes en un NSDATA con una longitud de 4, pero no estoy seguro de cómo continuar porque no puedo entender cómo ver el contenido de los NSDATA en la consola del depurador.

NSData *intBuffer = [NSData dataWithBytes:[buffer bytes] length:4];

¿Cómo puedo convertir estos 4 bytes a un objetivo C Int?

Editar:

Aquí hay algo que se me ocurrió que puede o no estar en el camino correcto. No estoy seguro de cómo obtener un solo valor de byte por índice en un NSDATA.

- (int) extractSize:(NSData *)data {
    NSMutableString *size = [NSMutableString stringWithCapacity:0];

    for (int i = [data length] - 1; i <= 0; i--) {
        //[size appendFormat:@"%x", data[i]];
    }

    return strtol([size UTF8String], nil, 16);
}
¿Fue útil?

Solución

int i;
[intBuffer getBytes:&i range:NSMakeRange(0, 4)];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top