2011-02-10 114 views
5

你好可愛的電腦人:將CFStringRef轉換爲C字符串?

我想將下面的CFStringRef轉換成CString。任何想法如何?

recordFilePath = (CFStringRef)[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"]; 

謝謝!


編輯1

DarkDust答案似乎接近,但我仍然得到一個錯誤(見註釋)。任何幫助?

+0

這是客觀-c,對吧?標籤應該是固定的。 – AShelly 2011-02-10 18:33:21

回答

7

由於CFStringRef可以撥打免費強制轉換爲NSString,你可以簡單地做:

myCString = [(NSString *)myCFStringRef UTF8String]; 

或在您的情況:

myCString = [[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"] UTF8String]; 
+0

hmmmmm ...我不確定是否在這裏丟失了一些東西。這不是一個NSString?我正在尋找一個C字符串。像char newString [] =一樣。 – 2011-02-10 17:55:20

11

一個簡單的解決方案:

CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding); 

結帳功能:

Boolean CFStringGetCString (
    CFStringRef theString, 
    char *buffer, 
    CFIndex bufferSize, 
    CFStringEncoding encoding 
);