2014-07-19 8 views
10

मैंने एक ढांचा बनाया है जिसके लिए sqlite3 ढांचे की आवश्यकता है। मैं अपने ढांचे के लिए एक उद्देश्य सी ब्रिजिंग हैडर कैसे जोड़ूं जो मेरी स्विफ्ट फ़ाइल में sqlite3 आयात करता है?उद्देश्य सी ब्रिजिंग हेडर फ्रेमवर्क के लिए

मेरे पास मेरे प्रोजेक्ट के लिए पहले से ही एक ब्रिजिंग हेडर फ़ाइल है, लेकिन मेरे ढांचे के लिए नहीं।

उत्तर

24

मैं सेटिंग लक्ष्य बिल्ड में एक Objective-C Bridging Header सेटिंग पाया। यह डिफ़ॉल्ट रूप से छुपा था। मूल के बजाय सभी की जांच करें।

हाल के एक्सकोड संस्करणों में यह समाधान त्रुटि Using bridging headers with framework targets is unsupported त्रुटि देगा।

वैकल्पिक हल मैं का उपयोग कर फ़ाइल निरीक्षक में सी-हैडर सार्वजनिक बनाने के लिए और इस उदाहरण की तरह MyFramework.h में आयात करने के लिए है:

#import <MyFramework/MyObjectiveC.h> 

को सी-हैडर कैसे बदलें सार्वजनिक

अपने सी-हेडर खोलें और ऊपरी दाएं कोने में क्लिक करके इंस्पेक्टर को देखें। फ़ाइल निरीक्षक को देखने के लिए, ऊपरी दाएं कोने में फ़ाइल आइकन पर क्लिक करें।

enter image description here

+0

इस 'का उपयोग कर ढांचे लक्ष्य के साथ हेडर ब्रिजिंग असमर्थित है "त्रुटि के लिए मुझे ले जाते हैं। वास्तविक उत्तर यह है http://stackoverflow.com/questions/24875745/xcode-6-beta-4-using-bridging-headers-with-framework-targets-is- असमर्थित। – idmean

+0

आपको प्रतीक्षा करने के लिए खेद है। मैंने अपना जवाब अपडेट कर लिया है। उम्मीद है कि यह @idmean मदद करता है! –

+1

क्या आप "इंस्पेक्टर में सी-हेडर सार्वजनिक बनाने" के बारे में विस्तृत जानकारी दे सकते हैं? – Ravi

3

बस अपने उद्देश्य-सी ब्रिजिंग फ़ाइल में अपने एसक्लाइट 3 ढांचे को आयात करें। फिर आप इसे स्विफ्ट में स्वचालित रूप से उपयोग कर सकते हैं।

एप्पल डॉक्स:

इंटरोऑपरेबिलिटी आप का उपयोग और अन्य भाषा की एक फ़ाइल में एक भाषा में लिखा कोड के टुकड़े का उपयोग दे, किसी भी दिशा में स्विफ्ट और ऑब्जेक्टिव-सी के बीच इंटरफेस करने की क्षमता है। जैसे ही आप अपने ऐप डेवलपमेंट वर्कफ़्लो में स्विफ्ट को एकीकृत करना शुरू करते हैं, यह समझना एक अच्छा विचार है कि आप कोको ऐप्स लिखने के तरीके को फिर से परिभाषित करने, सुधारने और बढ़ाने के लिए इंटरऑपरेबिलिटी का लाभ कैसे उठा सकते हैं। इंटरऑपरेबिलिटी का एक महत्वपूर्ण पहलू यह है कि स्विफ्ट कोड लिखते समय यह आपको उद्देश्य-सी एपीआई के साथ काम करने देता है। ऑब्जेक्टिव-सी फ्रेमवर्क आयात करने के बाद, आप कक्षाओं को तुरंत चालू कर सकते हैं और मूल स्विफ्ट वाक्यविन्यास का उपयोग करके उनके साथ बातचीत कर सकते हैं।

संपादित: तुम भी साथ

import yourFramework

एप्पल डॉक्स सिर्फ अपने तेज फ़ाइल में एक ऑब्जेक्टिव-सी ढांचे या स्विफ्ट ढांचे या एक मिश्रित-भाषा ढांचे आयात कर सकते हैं:

बाहरी फ्रेमवर्क आयात करना

आप अपमान कर सकते हैं टी बाहरी ढांचे जिनमें शुद्ध उद्देश्य-सी कोडबेस, शुद्ध स्विफ्ट कोडबेस, या मिश्रित भाषा कोडबेस है। बाहरी ढांचे को आयात करने की प्रक्रिया समान है कि ढांचा एक ही भाषा में लिखा गया है या इसमें भाषाओं दोनों की फ़ाइलें शामिल हैं। जब आप बाहरी ढांचे को आयात करते हैं, तो सुनिश्चित करें कि आपके द्वारा आयात किए जा रहे ढांचे के लिए मॉड्यूल बिल्ड सेटिंग को परिभाषित करता है, को हां में सेट किया गया है।

आप निम्न सिंटैक्स का उपयोग एक अलग लक्ष्य के भीतर किसी भी स्विफ्ट फ़ाइल में एक रूपरेखा आयात कर सकते हैं:

स्विफ्ट

import FrameworkName 

आप किसी भी Objective- में एक रूपरेखा आयात कर सकते हैं के भीतर सी। एम फ़ाइल निम्नलिखित वाक्यविन्यास का उपयोग करके अलग-अलग लक्ष्य:

@import FrameworkName; 
संबंधित मुद्दे