2015-08-14 4 views
1

Первый метод:Кто может сказать мне, что влияет функция?

-(NSData *)stringToAddBytes:(NSString*)addString 
{ 
    int length = (int)[addString length]; 
    if(length < 2) 
    { 
     return nil; 
    } 
    Byte buf[length/2]; 
    for(int i = 0 ;i < length/2 ;i++) 
    { 
     NSString *str = [addString substringWithRange:NSMakeRange(i * 2, 2)]; 
     Byte b = [self hexStringToByte:str]; 
     buf[i]=b; 
    } 

    NSData * myD = [[NSData alloc]initWithBytes:buf length:length/2]; 
    return myD; 
} 

методом, что первый метод называют.

-(Byte)hexStringToByte:(NSString*)str 
{ 
    NSArray *charArray = [[NSArray alloc]initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", 
          @"A",@"B",@"C",@"D",@"E",@"F",nil]; 
    NSString *str1 = [str substringWithRange:NSMakeRange(0, 1)]; 
    int num1 = (int)[charArray indexOfObject:str1]; 
    NSString *str2 = [str substringWithRange:NSMakeRange(1, 1)]; 
    int num2 = (int)[charArray indexOfObject:str2]; 

    Byte b = num1*16+num2; 
    return b; 
} 

Спасибо за ваш ответ. Он выглядит изменением большого символа на маленький символ.

+0

второй метод преобразования строки в код HEX и первый метод преобразования в байты NSData. –

+0

Я знаю это. Большое спасибо. – Scott

+0

строка преобразуется в HEX, а затем в шестнадцатеричный код байта. Больше ничего. Конечным результатом будут байты данных из шестнадцатеричных кодов. –

ответ

2

hexStringToByte: wil преобразовать строку с шестнадцатеричным представлением числа (пример @ "FF") в значение Byte (в этом примере 255).

stringToAddBytes: использует hexStringToByte: для создания NSData байтов разбивающихся addString на две буквы peases и преобразующих их Byte значений.

Другими словами, это сериализация строк.

Пример:

// 255 = 0xFF 
// 170 = 0xAA 
// 136 = 0x88 
NSString* addString = @"FFAA88"; 
NSData* data = [self stringToAddBytes:addString]; 
// data will be [255, 170, 136] 

Следует помнить, что NSData не является массивом, вместо этого, он представляет собой необработанный объект.

Смежные вопросы