NSData轉Byte、Byte轉NSData
NSData提供可以儲存任意字元資料的物件,它提供了介面來使用儲存的資料,所以程式在物件的環境中會更方便,記憶體管理也更容易,不過有時候與C程式要互通時,還是必需要轉成Byte方式給C程式使用,所以下面將針對這兩種型別轉換做介紹。
NSData 轉 Byte
這裡假設有個檔案為danny.bin
,我們利用NSData將檔案讀入並且轉成Byte陣列,這裡要注意的是,在C裡面並沒有Byte的類型,而是用unsigned char
的方式。
//-----------start----------- unsigned char *cData; NSData* nsData=[NSData dataWithContentsOfFile:@"danny.bin"]; cData = malloc([nsData length]); [nsData getBytes:cData]; //------------end------------
Byte 轉 NSData
再利用上述轉成Byte陣列的cData
指標當內容再轉成NSData類型的nsData1
//-----------start----------- NSData* nsData1=[NSData dataWithBytes:cData length:sizeof(cData)]; //------------end------------