将CFStringRef转换为C字符串?
问题描述:
你好可爱的电脑人:将CFStringRef转换为C字符串?
我想将下面的CFStringRef转换成CString。任何想法如何?
recordFilePath = (CFStringRef)[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"];
谢谢!
编辑1
DarkDust答案似乎接近,但我仍然得到一个错误(见注释)。任何帮助?
答
由于CFStringRef
可以拨打免费强制转换为NSString
,你可以简单地做:
myCString = [(NSString *)myCFStringRef UTF8String];
或在您的情况:
myCString = [[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"] UTF8String];
+0
hmmmmm ...我不确定是否在这里丢失了一些东西。这不是一个NSString?我正在寻找一个C字符串。像char newString [] =一样。 – 2011-02-10 17:55:20
答
一个简单的解决方案:
CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding);
结帐功能:
Boolean CFStringGetCString (
CFStringRef theString,
char *buffer,
CFIndex bufferSize,
CFStringEncoding encoding
);
这是客观-c,对吧?标签应该是固定的。 – AShelly 2011-02-10 18:33:21