将CFStringRef转换为C字符串?

时间:2011-02-10 17:49:15

标签: objective-c c cfstring

你好可爱的电脑人:

我想将以下CFStringRef转换为CString。知道怎么样?

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

谢谢!


编辑1

DarkDust答案似乎已接近尾声,但我仍然收到错误(请参阅评论)。有什么帮助吗?

2 个答案:

答案 0 :(得分:12)

一个简单的解决方案:

CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding);

结帐此功能:

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

答案 1 :(得分:7)

由于CFStringRef可免费投放到NSString,因此您可以执行以下操作:

myCString = [(NSString *)myCFStringRef UTF8String];

或在你的情况下:

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