2011-08-15 15 views
10

पर मैं एक CFUUIDRef को NSString * में बदलने की कोशिश कर रहा हूं।एक्सकोडेड पहचानकर्ता __bridge xcode

इससे पहले, मैंने निम्नलिखित कोड का उपयोग किया, और ठीक काम किया। अघोषित पहचानकर्ता '__bridge'

की

उपयोग:

CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef 
return (__bridge NSString *) str; 

हालांकि, (? कि मैं नोटिस नहीं किया था या दूसरी बात) Xcode पर हाल ही में अपडेट के बाद, इसके बाद के संस्करण कोड मुझे त्रुटि देता है

तो क्या मैंने कुछ गलत किया है? मैं इसे कैसे हल कर सकता हूं?

=== UPDATED ===

पूर्ण कोड:

+ (NSString *)uuidToString:(CFUUIDRef)_uuid { 
    CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef 
    return (__bridge NSString *) str; 
} 

UUID द्वारा उत्पन्न होता है:

uuid = CFUUIDCreate(NULL); 
+0

क्या आपके पास एआरसी चालू है? – Wevah

+0

यह शिकायत करता है कि एआरसी रूपांतरण की अनुमति नहीं देता है ... मैं xocde के लिए बहुत नया हूं और यह नहीं जानता कि इसे कैसे स्विच करें और न ही यह जांचें कि यह वास्तव में क्या है या नहीं। – PeterWong

+0

यदि आप इसका उपयोग करना चाहते हैं, तो एआरसी को वापस चालू करें, और हमें पूरा कोड दिखाएं जो इसके बारे में शिकायत कर रहा है। –

उत्तर

20

__bridge केवल एआरसी (स्वचालित संदर्भ गिनती) के साथ परिभाषित किया गया है सक्षम होना चाहिए। इसका उपयोग "एआरसी नियंत्रण में और बाहर वस्तुओं को स्थानांतरित करने" के लिए किया जाता है। (Source)

एआरसी चालू करने के लिए, अपनी बिल्ड सेटिंग्स पर जाएं और Objective-C Automatic Reference CountingYes पर सेट करें।

या, यदि आप एआरसी का उपयोग नहीं करना चाहते हैं, तो बस __bridge हटाएं और इसे ठीक काम करना चाहिए।

+1

नमस्ते मैंने यहां दिए गए उत्तर का उपयोग किया है: http://stackoverflow.com/questions/9342225/how-to-check-network-provider-name-in-ios-programming/9342559#comment11800200_9342559 लेकिन त्रुटियां प्राप्त करना। उस उत्तर से जुड़ी मेरी टिप्पणियां देखें। क्या तुम कृप्या मेरी मदद कर सकते हो। – Mrunal