将CFStringRef转换为C字符串?

Eri*_*tto 5 c objective-c cfstring

你好可爱的电脑人:

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

recordFilePath = (CFStringRef)[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"];
Run Code Online (Sandbox Code Playgroud)

谢谢!


编辑1

DarkDust答案似乎已接近尾声,但我仍然收到错误(见评论).有帮助吗?

Vik*_*ngh 12

一个简单的解决方案:

CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding);
Run Code Online (Sandbox Code Playgroud)

结帐这个功能:

Boolean CFStringGetCString (
   CFStringRef theString,
   char *buffer,
   CFIndex bufferSize,
   CFStringEncoding encoding
);
Run Code Online (Sandbox Code Playgroud)


Dar*_*ust 7

由于CFStringRef可以免费投入NSString,您可以简单地做:

myCString = [(NSString *)myCFStringRef UTF8String];
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下:

myCString = [[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"] UTF8String];
Run Code Online (Sandbox Code Playgroud)

  • 这就是`UTF8String`方法给你的东西,一个以null结尾的c字符串. (2认同)