你好,亲爱的计算机人士:
我想将下面的CFStringRef转换为CString。有什么办法吗?
recordFilePath = (CFStringRef)[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"];
谢谢!
编辑1
DarkDust的回答似乎接近,但我仍然遇到错误(请参见评论)。有什么帮助吗?
你好,亲爱的计算机人士:
我想将下面的CFStringRef转换为CString。有什么办法吗?
recordFilePath = (CFStringRef)[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"];
谢谢!
编辑1
DarkDust的回答似乎接近,但我仍然遇到错误(请参见评论)。有什么帮助吗?
一个简单的解决方案:
CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding);
看看这个函数:
Boolean CFStringGetCString (
CFStringRef theString,
char *buffer,
CFIndex bufferSize,
CFStringEncoding encoding
);
由于CFStringRef
可以被强制转换为NSString
,所以您可以简单地执行以下操作:
myCString = [(NSString *)myCFStringRef UTF8String];
myCString = [[NSTemporaryDirectory() stringByAppendingPathComponent: @"recordedFile.wav"] UTF8String];
UTF8String
方法给你的,一个以空字符结尾的 C 字符串。 - kubi