Преобразовать CFStringRef в строку C? - PullRequest
5 голосов
/ 10 февраля 2011

Здравствуйте, милые компьютерные люди:

Я хотел бы преобразовать следующий CFStringRef в CString. Есть идеи как?

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

Спасибо!


РЕДАКТИРОВАТЬ 1

Ответ на DarkDust, похоже, близок, но я все еще получаю ошибку (см. Комментарий). Любая помощь?

Ответы [ 2 ]

12 голосов
/ 15 мая 2012

Простое решение:

CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding);

Оформить заказ этой функции:

Boolean CFStringGetCString (
   CFStringRef theString,
   char *buffer,
   CFIndex bufferSize,
   CFStringEncoding encoding
);
7 голосов
/ 10 февраля 2011

Поскольку CFStringRef может быть бесплатно переведен на NSString, вы можете просто:

myCString = [(NSString *)myCFStringRef UTF8String];

или в вашем случае:

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