2009-04-30 7 views
31

पिछले कुछ सप्ताहों मैं कई सामने आने वाले से अधिक सामान्य रूप में iPhone विकास और ऑब्जेक्टिव-सी के क्षेत्र में नये रूप में सीएफ और एन एस चौखटे के बीच 'टोल फ्री पुलों' का उल्लेख है।टोल फ्री पुलों

एक विशेष उदाहरण सीएफस्ट्रीम और एनएसएसटीम होगा।

क्या कोई संसाधन इन सभी पुलों को दस्तावेज करने और उनका उपयोग करने का तरीका मौजूद है? क्या यह एक प्रकार के दूसरे वस्तु से कास्टिंग के रूप में उतना आसान है?

मैं पूछता हूँ इस समय के रूप में मैं NSStream कॉल कि stricly iPhone SDK के भीतर की अनुमति नहीं है और समझते हैं कि मैं CFStream का उपयोग करना चाहिए कॉल उपयोग कर रहा हूँ।

संपादित करें: के बारे में how TFB works

+2

इस विषय पर एक उत्कृष्ट ब्लॉग पोस्ट है। Http://ridiculousfish.com/blog/archives/2006/09/09/bridge/ देखें, जब तक मैं इसे बेहतर समझ नहीं पाया तब तक मैं टोल-फ्री ब्रिजिंग की लीरी थी। करने के लिए [टोल फ्री पाटने डेटा प्रकार] – Mark

उत्तर

37

टॉल फ्री ब्रिजिंग एक उपयोगी लेख का मतलब है कि डेटा संरचनाओं परस्पर विनिमय कर रहे। यह कास्टिंग के समान ही सरल है - यह "टोल-फ्री" भाग है। कहीं भी आप पुल के एक तरफ के प्रकार का उपयोग कर सकते हैं, आप दूसरे का उपयोग कर सकते हैं। इसलिए, उदाहरण के लिए, आप एक CFString बना सकते हैं और उसके बाद एनएसएसटींग संदेश भेज सकते हैं, या आप एक एनएसएआरएआरई बना सकते हैं और सरणी को CFArray कार्यों में पास कर सकते हैं।

एप्पल अपनी साइट पर एक list of the supported toll-free bridged types रहता है।

+1

अपडेट किया गया लिंक (http://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFDesignConcepts/Articles/tollFreeBridgedTypes.html#//apple_ref/doc/uid/20002401 -767858) – 0xced

+0

दिलचस्प। वे 'CFNullRef' और' NSNull' – user102008

+0

@ user102008 की सूची नहीं देते हैं: हाँ, कोई संकेत नहीं कि वे उन दोनों को स्वीकार करने के लिए इतने अनिच्छुक क्यों प्रतीत होते हैं। सीएफएनयूएल के परिचय AFAIK के बाद से उन्हें ब्रिज किया गया है। – Chuck

4

टॉल फ्री-ब्रिजिंग, हालांकि एक अजीब नाम, CoreFoundation वर्गों में से एक बहुत ही शांत सुविधा है। मूलतः यह तथ्य यह है कि आप एक ही नाम के CoreFoundation और NextStep वर्गों के बीच डाल सकता करने पर निर्भर करता (CFString < -> NSString, CFData < -> NSData, CFDictionary < -> NSDictionary ... बस सबसे अधिक इस्तेमाल किया के कुछ नाम हैं ।)

| के <

संबंधित मुद्दे