創建CString的我有一個C API,它採用指向任意的二進制數據與函數簽名類似如下:從NSData的
void receiveData(const char *data, size_t length);
的橋接報頭進口到這一點夫特具有以下定義:
func receiveData(data: CString, length: UInt)
我覺得我錯過了一些基本的東西,但我似乎無法弄清楚如何從任意NSData
獲得CString
- 唯一的選擇似乎是從NSString
轉換或作爲字符串文字。我如何創建CString
?
能夠通過CConstPointer<CChar>
會更有意義,但編譯器沒有吧 - 有什麼方法可以修改由橋接頭生成的Swift簽名嗎?
編輯:的CString在Xcode 6 beta 4版本從發佈說明移除:
CString的類型已被刪除。類型爲const char *的值現在爲導入爲ConstUnsafePointer而不是CString的 。將 展開爲字符串的C宏導入爲String。
這可能是一個副本︰http://stackoverflow.com/questions/24147825/cstring-from-nsdata – hotpaw2
@ hotpaw2:不,這是關於從二進制數據,而不是編碼的字符串數據創建一個CString。 – Sam