2010-04-23 5 views
-3
  1. Как я могу прочитать данные из потока чтения в Objective-C? Код ниже дал бы мне, сколько байтов считывается из потока, но как я могу узнать, какие данные считываются из потока?Как извлечь только 1-й 2 байта данных из CFReadStream в Objective-C для программирования iPhone

    CFIndex cf = CFReadStreameRead(Stream, buffer, length); 
    
  2. Как я могу извлечь только 1-й 2bytes данных в потоке чтения в Objective-C? Так, например, если это данные из потока:

    017MacApp 
    

    1-й байт имеет 0 в нем, а второй байт имеет 17 в нем.

    Как извлечь 0 и 17 в массив байтов?

Я знаю, что приведенный ниже код вернет мне массив байтов в значение int.

((b[0] & 0xFF) << 8)+ (b[1] & 0xFF); 

но как положить 0 в b [0] и 17 в b [1]?

ответ

0
uint8_t buffer[2]; 
CFIndex cf = CFReadStreamRead(Stream, buffer, 2); 
if (cf == 2) 
{ 
    uint8_t firstByte = buffer[0]; 
    uint8_t secondByte = buffer[1]; 
} 
else 
{ 
    // cf == -1 => error, cf == 0 => end of file, cf == 1 => you need to call again to get the second byte 
} 

Адрес Apple doc.