2011-02-10 3 views
5

हैलो प्यारा कंप्यूटर लोग:एक सीएफ स्ट्रिंग में एक CFStringRef कनवर्ट करें?

मैं निम्नलिखित CFStringRef को CString में कनवर्ट करना चाहता हूं। कोई विचार कैसे?

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

धन्यवाद!


संपादित करें 1

DarkDust जवाब करीब आ रहा है, लेकिन मैं अभी भी हो रही है एक त्रुटि (टिप्पणी देखें)। कोई मदद?

+0

यह उद्देश्य-सी है, है ना? टैग तय किया जाना चाहिए। – AShelly

उत्तर

7

एक CFStringRef के बाद से टोल फ्री NSString लिए casted किया जा सकता है, तो आप बस कर सकते हैं:

myCString = [(NSString *)myCFStringRef UTF8String]; 

या अपने मामले में:

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

hmmmmm ... मुझे यकीन नहीं है कि मुझे यहां कुछ याद आ रही है। क्या वह एक एनएसएसटींग नहीं है? मैं एक सी स्ट्रिंग की तलाश में हूँ। चार newString की तरह [] =। –

+2

यही है कि 'यूटीएफ 8 स्ट्रिंग' विधि आपको एक शून्य-समाप्त सी-स्ट्रिंग देता है। – kubi

+0

मुझे मिल रहा है 'MyCString इस दायरे में घोषित नहीं किया गया है' :( –

11

एक सरल समाधान:

CFStringGetCString(myCFStringRef, myCStringPointer, mySize, myEncoding); 

इस फ़ंक्शन को चेकआउट करें:

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