2011-02-10 115 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 
);