Domanda

In un'applicazione Web .NET la classe BitConverter viene utilizzato per convertire Int32 di in un array di byte in questo modo:

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

Ora sto cercando di leggere questo nuovo in un'applicazione per iPhone. Ho i byte in un NSData con una lunghezza di 4, ma non sono sicuro di come continuare perché io non riesco a capire come visualizzare il contenuto del NSData nella console debugger.

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

Come posso convertire questi 4 byte per un obiettivo-c int?

Modifica

Qui c'è qualcosa mi è venuta, che può o non può essere sulla strada giusta. Non sono sicuro di come ottenere un singolo valore di byte per indice in 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);
}
È stato utile?

Soluzione

int i;
[intBuffer getBytes:&i range:NSMakeRange(0, 4)];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top