2014-01-10 51 views
0

我正在開發iOS測試應用程序,以使用我開發的藍牙4.0 LE模塊。該模塊充當與其他電子設備的無線UART連接。我需要通過外設發送一個二進制字節數組。我的設置已經使用NSdata並通過藍牙傳輸到模塊。創建一個包含二進制字節的NSdata對象

說例如我有一個NSString @「ABCDE」然後字符串被轉換成NSdata並傳輸,它到達我的模塊,因爲「ABCDE」很好,沒有問題。

但是,對於我的一個主要應用程序,我需要使用查找表將字符串的字符轉換爲專有字節數組。然後這個字節數組需要成爲NSdata並被傳輸​​。

下面是一個例子:

讓說我有string @"A"查找功能確定每個「A」變成了5個二進制字節:"0111111 1001000 100100 0111111 0000000"(所有字母組成的5個字節的二進制數據

現在。我需要將它存儲在NSData對象中,以便它通過藍牙發送。我遇到的問題是,如果使用該數據的字符串表示形式,我將最終得到一個不正確的數據對象。但沒有東西似乎工作。任何幫助將不勝感激!

+0

你是問如何CONVER的NSString NSData的? –

+0

不,我想我問如何將NSdata對象的實際字節設置爲二進制字節。這樣,第一個字節是「0111111」,而不是字符串中字符的二進制或ASCII表示。 –

+0

我仍然無法清楚地理解你。在[這個問題]看到我的答案(http://stackoverflow.com/questions/20772161/set-data-for-each-bit-in-nsdata-ios/20775752#20775752)。這可能會有所幫助。讓我知道 –

回答

0

這只是一個例子,但我認爲你可以明白了吧,剛剛設置的字節數組的值正確,並把它傳遞給NSData的:

char t[16]; 
t[0] = ((UUID >> 8) & 0xff); 
t[1] = (UUID & 0xff); 
NSData *data = [[NSData alloc] initWithBytes:t length:16]; 
相關問題