2014-06-11 8 views
31

यह "बिल्ड विकल्प" के तहत एक नई सेटिंग है। यह क्या करता है? मुझे इसके बारे में कोई दस्तावेज नहीं मिल रहा है। मेरा अनुमान है: स्विफ्ट रनटाइम के खिलाफ लिंक करने के लिए एक्सकोड को बताने के लिए इसे मिश्रित उद्देश्य-सी/स्विफ्ट ऐप में YES पर सेट करना होगा?"एम्बेडेड सामग्री में स्विफ्ट कोड शामिल है" एक्सकोड 6 में सेटिंग बनाने क्या करता है?

+2

दौड़ा सेट इस बिल्ड की स्थापना, जो निर्दिष्ट करता है एक लक्ष्य के उत्पाद स्विफ्ट कोड के साथ सामग्री एम्बेडेड गया है या नहीं, Xcode बताता है आपके एप्लिकेशन में स्विफ्ट मानक पुस्तकालयों एम्बेड करने के लिए सेटिंग: https://developer.apple.com/library/ios/qa/qa1881/_index.html – phatblat

+0

@phatblat बिल्कुल सही! एक दम बढ़िया! धन्यवाद! –

उत्तर

24

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

विवरण:

इंगित करने के लिए इतना है कि मानक स्विफ्ट पुस्तकालयों उत्पाद में शामिल किया जा सकता है कि सामग्री लक्ष्य के उत्पाद में एम्बेडेड, स्विफ्ट कोड होता है इस सेटिंग को सक्षम करें।

इसके अलावा बीटा 7 की रिहाई नोट में

:

निर्माण कदम जो एक बंडल में स्विफ्ट मानक पुस्तकालयों को एम्बेड करता है अब केवल आवेदन उत्पाद प्रकार के लिए चलाता है, और केवल तभी आवेदन ही है, स्वतंत्र किसी भी एम्बेडेड सामग्री में, स्विफ्ट स्रोत फ़ाइलें शामिल हैं। जब कोई एप्लिकेशन बनाते हैं जिसमें स्विफ्ट स्रोत फ़ाइलें नहीं होती हैं, लेकिन फ्रेमवर्क, एक्सपीसी सेवाएं, ऐप एक्सटेंशन, इत्यादि जैसी अन्य सामग्री एम्बेड करती है जिसमें स्विफ्ट कोड होता है, तो आपको बिल्ड सेटिंग सेट करना होगा "एम्बेडेड सामग्री में स्विफ्ट कोड" (EMBEDDED_CONTENT_CONTAINS_SWIFT)। इस तरह स्विफ्ट पुस्तकालयों में आवेदन में शामिल किया जाएगा।

सादर

2

मुझे विश्वास नहीं है कि स्विफ्ट और उद्देश्य-सी के बीच सामान्य अंतःक्रियाशीलता की आवश्यकता है। यह स्विफ्ट कोड जोड़ने और ब्रिजिंग हेडर को संपादित करने जितना आसान है।

यदि आप आईओएस के लिए एक्सटेंशन के बारे में कोई भी दस्तावेज देखते हैं, तो लिंगो ने "एम्बेडेड" का उल्लेख थोड़ा सा किया है: एम्बेडेड सामग्री, एम्बेडेड फ्रेमवर्क इत्यादि। क्योंकि सामान्य ऐप्स से एक्सटेंशन व्यवस्थित, निर्मित और चलाए जाते हैं I यह आश्चर्यचकित नहीं होगा कि इस तरह की एक बिल्डिंग सेटिंग है जो उससे संबंधित है।

+0

आह, तो आपका मतलब है कि यह एक एक्सटेंशन में स्विफ्ट कोड का उल्लेख कर सकता है जिसे आप अपने ऐप बंडल में शामिल करते हैं? –

+1

यह मेरा अनुमान होगा, हां। लेकिन, मुझे यकीन है कि मिश्रित स्विफ्ट/ओबीजे-सी ऐप्स करने के लिए आपको इसकी आवश्यकता नहीं है। –

3
Embedding Content with Swift in Objective-C

स्विफ्ट मानक पुस्तकालयों एक बंडल में नकल कर रहे हैं यदि और केवल यदि आप किसी अनुप्रयोग का निर्माण कर रहे हैं और इस आवेदन अपने आप में स्विफ्ट स्रोत फ़ाइलें हैं के अनुसार

यदि आप ऐसे ऐप का निर्माण कर रहे हैं जो स्विफ्ट का उपयोग नहीं करता है लेकिन एक फ्रेमवर्क जैसी सामग्री को एम्बेड करता है, तो एक्सकोड में आपके ऐप में इन पुस्तकालयों को शामिल नहीं किया जाएगा। नतीजतन, आपका ऐप लॉन्च करने पर

इस समस्या को हल करने के लिए, एम्बेडेड सामग्री को स्विफ्ट कोड (EMBEDDED_CONTENT_CONTAINS_SWIFT) सेटिंग YES में सेट करने के लिए सेट करें। जब इस तकनीक क्यू एंड इस EMBEDDED_CONTENT_CONTAINS_SWIFT निर्माण के आसपास कुछ और चर्चा के साथ एक दस्तावेज़ भर में हां में

+4

तो अगर हमारे पास कुछ cocoapods के साथ एक त्वरित परियोजना है जो उद्देश्य सी में हैं ... हमें इस मूल्य को क्या सेट करना चाहिए? – user805981

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