2017-05-11 115 views
-1

的轉換斯威夫特代碼此方法:如何將NSData轉換爲iOS Objective C中的UInt8數組?

func DATA_TO_UINT8(_ d:Data) -> Array<UInt8> { 
     return d.withUnsafeBytes { 
      [UInt8](UnsafeBufferPointer(start: $0, count: (d.count))) 
     } 
} 

,現在我希望它在目標C

+1

你爲什麼首先使用'Array '?這就是NSData的重點:封裝一系列字節。 – Alexander

+0

我得到了這段代碼的迴應,它是正確的。你能告訴我在目標c中將Data或NSData轉換爲uint8數組嗎? @Alexander –

回答

1

要產生一個基於堆棧的陣列嘗試像(輸入直接進入應答碼,預計錯誤):

NSData *data = ... 

UInt8 buf[data.length]; // local stack array 
[data getBytes:buf length:data.length]; 

如果你想堆數組,你將需要使用malloc分配內存,如果你實際上並不需要數組只是一個C指針,你可以使用方法NSDatabytes

相關問題