2011-02-10 5 views
5

こんにちは素敵なコンピュータの人々:CFStringRefをC文字列に変換しますか?

私は次のCFStringRefをCStringに変換したいと思います。どのようなアイデア?

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

ありがとう!


EDIT 1

DarkDustの答えが近づいているようだが、私はまだエラーが(コメントを参照)を取得しています。どんな助け?

+0

これは客観的に正しいですか?タグは固定する必要があります。 – AShelly

答えて

7

CFStringRefはフリーダイヤルNSStringにキャストすることができますので、あなたは簡単に行うことができます。

myCString = [(NSString *)myCFStringRef UTF8String]; 

またはあなたの場合:

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

hmmmmm ...私はここに何かを見逃しているか分からない。それはNSStringではありませんか?私はCの文字列を探しています。 char newString [] =と同様です。 –

+2

それは、 'UTF8String'メソッドがあなたに与えたものです。ヌルで終了するC文字列です。 – kubi

+0

私は 'myCStringがこのスコープで宣言されていません'と感じています:( –

11

簡単な解決策:

CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding); 

この機能をチェックアウト:

Boolean CFStringGetCString (
    CFStringRef theString, 
    char *buffer, 
    CFIndex bufferSize, 
    CFStringEncoding encoding 
); 
関連する問題