2014-12-22 21 views
1

年底這裏是代碼 - >如何追加3個字節的 '110' 在NSMutableData

NSString* message = @"username,password"; 
NSMutableData *data = [[NSMutableData alloc] initWithData: 
         [message dataUsingEncoding:NSASCIIStringEncoding]]; 

[data appendBytes:"0x1""0x1""0x0" 
       length:3]; 

我期待輸出 - >用戶名,password110

,但沒有得到這一點。

回答

2

你所追加的不是字節,它是一個字符串"0x10x10x0"。前三個字符被附加 - 具體地說,'0','x''1'

要追加三個字節,創建一個字節數組,並追加它:

unsigned char suffixBytes[] = {1, 1, 0}; 
[data appendBytes:suffixBytes length:3]; 

在一個特定的情況下,當所有字節表示可打印字符的字符代碼,你可以使用一個字符串來代替:

[data appendBytes:"110" length:3]; 

這會將字符代碼'1','1''0'附加到您的數據中。假設ASCII編碼,值將是{0x31, 0x31, 0x30}

+0

NSMutableData * lobjdata = [[NSMutableData alloc] init]; unsigned char suffixBytes [] = {1,1,0}; [lobjdata appendBytes:suffixBytes length:3]; NSLog(@「bytes - >%@」,lobjdata); –

+0

@UA_PPS好的。那麼當你這樣做時會印刷什麼? – dasblinkenlight

+0

字節 - ><010100> –