Вопрос

В веб -приложении .NET класс BitConverter используется для преобразования Int32 в байтовый массив, как SO:

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

Теперь я пытаюсь прочитать это обратно в приложение для iPhone. У меня есть байты в NSDATA с длиной 4, но я не уверен, как продолжить, потому что я не могу понять, как просматривать содержимое NSDATA на консоли отладчика.

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

Как я могу преобразовать эти 4 байта в объектив-C Int?

Редактировать:

Вот кое -что, с чем я мог быть или не может быть на правильном пути. Я не уверен, как получить единичное значение по индексу в 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);
}
Это было полезно?

Решение

int i;
[intBuffer getBytes:&i range:NSMakeRange(0, 4)];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top