objective c - उद्देश्य-सी शीर्षलेख पर जाएं Xcode 6 में नहीं बनाया गया है




objective-c swift (20)

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

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

लेकिन -Swift.h हेडर फ़ाइल जिसे स्विफ्ट क्लास का खुलासा करना है, या तो ओबीजेसी कक्षाओं के @objc या उप-वर्गों को चिह्नित किया गया है, कहीं भी नहीं मिला है :-(

मुझे अपने मुख्य ऐप कोड (जो अभी भी ओब्जे-सी है) में स्विफ्ट में लिखे गए मेरे नए उप-वर्ग के उपयोग को पूरा करने के तरीके पर कोई विशिष्ट निर्देश नहीं दिख रहा है।

जिस ऐप का मैं मुख्य डेवलपर हूं, उसका काफी बड़ा कोडबेस (70,000 लाइन) है, इसलिए इसे एक बार में स्थानांतरित करना सवाल से बाहर है।


अब यह काम कर रहा है।

  1. प्रोजेक्ट में एक उत्पाद मॉड्यूल नाम होना चाहिए जिसमें रिक्त स्थान शामिल न हों
  2. मॉड्यूल को मॉड्यूल को पैकेजिंग के तहत बिल्ड सेटिंग्स में हां पर सेट किया जाना चाहिए।

अंत में काम करता है। मदद के लिए सभी को धन्यवाद :-)


आपको उद्देश्य-सी कक्षाओं में एक शीर्षलेख आयात करना है, जो है:

#import “ProductModuleName-Swift.h”

यह स्वचालित रूप से जेनरेट किया गया है, संदर्भ में यह कहता है "आपके लक्ष्य में कोई भी स्विफ्ट फाइलें इस आयात कथन वाले उद्देश्य-सीएम फाइलों में दिखाई देंगी।"


किसी भी व्यक्ति के लिए सिर्फ एक सिर जो "।" वहां परियोजना का नाम है। एक्सकोड "।" को प्रतिस्थापित करेगा ब्रिजिंग हेडर फ़ाइल के स्विफ्ट संस्करण के लिए अंडरस्कोर "_" के साथ। विचित्र रूप से पर्याप्त ब्रिजिंग-हेडर एचएच उत्पन्न होता है जो अंडरस्कोर के साथ अवधि को प्रतिस्थापित नहीं करता है।

उदाहरण के लिए My.Project नाम के साथ एक प्रोजेक्ट में निम्न ब्रिजिंग हैडर फ़ाइल नाम होंगे।

ब्रिजिंग-हेडर एच। (स्वत: उत्पन्न)

My.Project-ब्रिजिंग-Header.h

Swift.h

My_Project.h

मुझे उम्मीद है कि यह किसी भी व्यक्ति की मदद करता है जो एक अवधि का इस्तेमाल करता था और जैसे ही मैं अटक गया था। यह फ़ाइल निम्न स्थान पर पाई जा सकती है।

मैकिंतोश एचडी / उपयोगकर्ता / उपयोगकर्ता / लाइब्रेरी / डेवलपर / एक्सकोड / डीरिवेटेडडेटा / मै.प्रोजेक्ट- एफएनटीयूएलपीपीबीबीबीजेडीबीबीकेकेनमक्रफिल /बिल्ड / इंटरिजेटर्स / माई.प्रोजेक्ट.बिल्ड / डेबग- एफहोन्सिम्युलेटर / My.Project.build/DerivedSources

ध्यान रखें,

जॉन


ठीक है, यहां उन सभी चीजें हैं जिनकी आपको वास्तव में आवश्यकता है!

1. आपके द्वारा जोड़े गए सभी त्वरित फ़ाइलों को हटाएं, और बिना किसी त्रुटि के कोड को संकलित करें।

----------

----------

2. "प्रोजेक्ट्स" बिल्ड सेटिंग्स पर जाएं, और उत्पाद मॉड्यूल नाम सेट करें। प्रोजेक्ट में एक उत्पाद मॉड्यूल नाम होना चाहिए जिसमें रिक्त स्थान शामिल न हों।

----------

----------

3. डिफाईन मॉड्यूल को अपनी परियोजना में पैकेजिंग के तहत, बिल्ड सेटिंग्स में हां पर सेट किया जाना चाहिए, और लक्ष्य नहीं!

----------

----------

4. अब फ़ाइल में एक स्विफ्ट फ़ाइल या व्यू कंट्रोलर बनाएं-> newFile->

----------

----------

यह एक ब्रिजिंग-हेडर बनाने के लिए कहेंगे, इसे एक बनाने की अनुमति दें। यदि आपने इसे एक बार अस्वीकार कर दिया है, तो आपको मैन्युअल रूप से ए -ब्रिजिंग-हेडर एच जोड़ना होगा

5. नियंत्रक को @objc जोड़ें, संकलक को बताने के लिए कि कुछ तेज फ़ाइल है, जिसे ObjectiveC के संपर्क में आने की आवश्यकता है

----------

----------

6. प्रोजेक्ट बनाएं और किसी भी उद्देश्य-नियंत्रक में #import "-Swift.h" आयात करें, और यह काम करेगा! वास्तविक फ़ाइल देखने के लिए आप कमांड-क्लिक कर सकते हैं!

----------

----------

उम्मीद है की यह मदद करेगा!


परियोजना में एक मॉड्यूल नाम होना चाहिए जिसमें रिक्त स्थान शामिल नहीं हैं। मॉड्यूल को मॉड्यूल को पैकेजिंग के तहत बिल्ड सेटिंग्स में हां पर सेट किया जाना चाहिए। # आयात विवरण पर टिप्पणी की:

यदि अभी भी आपको "ProductModuleName-Swift.h" आयात करने में त्रुटि हो रही है

// # आयात "ProductModuleName-Swift.h"

जिसने मेरे स्विफ्ट कोड में अन्य त्रुटियों का एक गुच्छा प्रकट किया।

एक बार जब मैंने इन नई त्रुटियों को ठीक कर लिया और स्रोत निर्माण सफलतापूर्वक प्राप्त कर लिया, तो मैंने # आयात और बिंगो को अपूर्ण कर दिया! हेडर बनाया गया था और सही ढंग से आयात :)


फ़ाइल नाम हमेशा आपके लक्ष्य नाम से पहले होता है। इसे उत्पाद नाम के रूप में जाना जाता है लेकिन व्यावहारिक रूप से यह लक्ष्य नाम है। तो यदि आप इसे एक नए लक्ष्य के लिए बनाना चाहते हैं तो that_target-Swift.h फ़ाइल की अपेक्षा करने के लिए तैयार that_target-Swift.h

इसे संभालने का एक तरीका है

  1. अपने प्रत्येक लक्ष्य के लिए एक प्रीप्रोसेसर जोड़ें जो आपके लक्ष्य का नाम है (रिक्त स्थान के बिना)। पूर्व। MY_TARGET=1 । इसे परियोजना सेटिंग्स में जोड़ें-> अपने प्रत्येक लक्ष्य के लिए सेटिंग-> प्रीप्रोसेसर मैक्रोज़ बनाएं।
  2. यदि आप एक पीसीएच फ़ाइल का उपयोग कर रहे हैं,

इन लाइनों को पीसीएच फ़ाइल में जोड़ें

#if MY_TARGET==1
#include "My_Target-Swift.h"
#elif THAT_TARGET==1
#include "That_Target-Swift.h" 
#endif

पीसीएच फ़ाइल का उपयोग करने का लाभ यह है कि आपको हर जगह हेडर शामिल करने की आवश्यकता नहीं है।

  1. यदि आप एक पीसीएच फ़ाइल का उपयोग नहीं कर रहे हैं, तो बस एक ही शीर्षलेख में एक ही पंक्ति में जोड़ें और उस हेडर को शामिल करें जहां आपको स्विफ्ट कक्षाओं का उपयोग करने की आवश्यकता है।

यह ठीक काम करना चाहिए।


मुझे अपने मॉड्यूल नाम / उद्देश्य-सी के स्विफ्ट के शीर्षकों के आयात का निर्धारण करने में कठिनाई हो रही थी। मैंने यहां बहुत सारे लेख भी पढ़े हैं।

लेकिन आपके प्रोजेक्ट नाम के लिए इसके सभी विशेष विशेष वर्णों के साथ निश्चित उत्तर (चाहे वह 'या' संख्यात्मक या एक स्थान हो) - आप उस पाठ को पा सकते हैं जो लक्ष्य के निर्माण सेटिंग्स के तहत " उत्पाद मॉड्यूल नाम " में आपके लिए काम करेगा ।

उदाहरण के लिए मेरा लक्ष्य नाम एक संख्यात्मक - "1 एमजी" के साथ शुरू हुआ और उपरोक्त वर्णित फ़ील्ड ने मेरे मॉड्यूल नाम के रूप में "_mg" दिखाया।

इसलिए मैंने # आयात "_mg-Swift.h" का उपयोग किया और यह काम किया।


मुझे एक चाल मिली जो हमेशा मुझ पर काम करती है।

  1. अपनी appimelegate.h फ़ाइल में और अपने ProductName-Prefix.pch फ़ाइल में अपना #import "ProductModuleName-Swift.h" बनाएं। यदि आपके पास xcode 6 में नहीं है तो आप इसे इस तरह से बना सकते हैं क्यों ProjectName-Prefix.pch स्वचालित रूप से Xcode 6 में नहीं बनाया गया है?
  2. अपने कोड को साफ करने के लिए कमांड + शिफ्ट + के, अगर आपको अपने "ProductModuleName-Swift.h" के बारे में कोई त्रुटि प्राप्त होती है, तो इसे appDelegate.h फ़ाइल से हटा दें।
  3. अपना कोड दोबारा साफ करें। अब सब कुछ एक आकर्षण की तरह काम करेगा
  4. यदि आपको "ProductModuleName-Swift.h" के बारे में फिर से त्रुटि मिलती है, तो अब appDelegate.h फ़ाइल में फिर से बनाएं और अपना कोड फिर से साफ़ करें।

यह काम करें (appDelegate.h फ़ाइल से "ProductModuleName-Swift.h" को हटाएं और बनाएं और अपना कोड साफ़ करें) हर बार आपको यह त्रुटि चुप करने के लिए प्राप्त होती है।


मुझे पुरानी ओबीजेसी परियोजना में स्विफ्ट का उपयोग करने की कोशिश कर रहे अपने अनुभव साझा करने की अनुमति दें। मुझे Defines module को YES Defines module करने की आवश्यकता नहीं थी।

मेरे मामले में मुझे मैन्युअल रूप से यह सुनिश्चित करना होगा कि ओबीजेसी ब्रिजिंग हेडर था। केवल मेरी जेनरेट की गई इंटरफेस हेडर नाम मेरी बिल्ड सेटिंग्स में मौजूद थी।

यह उत्पन्न होने के लिए एक MyApp-Swift.h फ़ाइल का कारण बनता है, लेकिन मेरे स्विफ्ट वर्गों के किसी भी निशान के बिना।

ऐप्पल प्रलेखन का कहना है कि आपकी पहली स्विफ्ट फ़ाइल जोड़ते समय आपको ब्रिजिंग हेडर बनाने के लिए कहा जाएगा। खैर, मैं नहीं था। मैंने मैन्युअल रूप से एक MyApp-Bridging-header.h फ़ाइल को जोड़ा और इसे "उद्देश्य-सी ब्रिजिंग हैडर" फ़ील्ड में इंगित किया। इससे मेरी MyApp-Swift.h फ़ाइल मेरी स्विफ्ट कक्षाओं के साथ पॉप्युलेट हो गई।

डॉक्स: उद्देश्य-सी में स्विफ्ट आयात करना


मुझे भी इसी तरह की समस्या थी, लेकिन मेरी परियोजना पहले संकलित हो रही थी और कुछ फाइल कोड बदलने के बाद अचानक त्रुटि मिली। मुझे यह पता लगाने के लिए लिया कि मुझे myproject-swift.h फ़ाइल के लिए 'फ़ाइल नहीं मिली' त्रुटि क्यों मिल रही है। मेरे द्वारा किए गए कोड में कुछ त्रुटियां थीं। एक्सकोड ने 'त्रुटि नहीं मिली फ़ाइल' दिखाते हुए हर बार उन त्रुटि को इंगित नहीं किया। फिर पिछले संस्करण कोड की प्रति मिली और मैंने नए कोड और विलय फ़ाइल की तुलना एक-एक करके की। प्रत्येक फ़ाइल विलय के बाद त्रुटि को खोजने के लिए प्रोजेक्ट का पालन किया गया। तो नीचे पंक्ति यह है कि यदि आपके कोड में त्रुटि है तो एक्सकोड सिर्फ myproject-swift.h फ़ाइल के लिए 'फ़ाइल नहीं मिली त्रुटि' प्रदर्शित कर सकता है। सबसे अधिक संभावना है कि आपके प्रोजेक्ट में संकलन त्रुटि हो। उन त्रुटियों को साफ़ करें और यह काम करेगा।


मुझे यह समाधान मिला

  • SwiftBridge.h बनाएँ
  • #import "ProductModuleName-Swift.h" डालें
  • इसे .h फ़ाइल सार्वजनिक करें (महत्वपूर्ण) फ़ाइल का चयन करें -> फ़ाइल इंस्पेक्टर (दायां बार) दिखाएं -> इसे सार्वजनिक बनाएं

अब आप कर सकते हैं

#import "SwiftBridge.h"

ProductModuleName-Swift.h के बजाय

यह एक वर्कअराउंड समाधान है, एक्सकोड के अगले संस्करण के लिए मुझे लगता है कि यह समस्या हल हो जाएगी। सौभाग्य


मेरे मामले में मुझे कम से कम "ओएस एक्स 10.9" पर तैनाती लक्ष्य निर्धारित करना था और -Swift.h हेडर स्वचालित रूप से जेनरेट किया गया था। ध्यान रखें कि जब आप तैनाती लक्ष्य संस्करण बदलते हैं, तो विशेष रूप से जब आपके पास पुराना और बहुत बड़ा उद्देश्य सी कोड आधार होता है तो आप बहुत अधिक बहिष्करण चेतावनियां प्राप्त कर सकते हैं। हमारे मामले में हमने XIB फ़ाइलों में और कक्षाओं को देखने के लिए बहुत सारे काम किए थे।


मैंने पाया कि फ़ाइल को उत्पन्न करने से पहले मुझे सभी बिल्ड त्रुटियों को ठीक करना था।

मेरे लिए समस्या यह थी कि यह एक चिकन / अंडे की समस्या थी, जिसमें मैंने कोई निर्माण त्रुटियां नहीं देखी जब तक कि मैं वास्तव में #import कथन पर टिप्पणी नहीं करता था:

//#import "ProductModuleName-Swift.h"

जिसने मेरे स्विफ्ट कोड में अन्य त्रुटियों का एक गुच्छा प्रकट किया।

एक बार जब मैंने इन नई त्रुटियों को ठीक कर लिया और स्रोत निर्माण सफलतापूर्वक प्राप्त कर लिया, तो मैंने #import और बिंगो को #import कर दिया! हेडर बनाया गया था और सही ढंग से आयात :)


मॉड्यूलनाम-स्विफ्ट.h का एक और बदलाव यहां उत्पन्न नहीं किया जा रहा है।

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

मेरी प्रोजेक्ट की मॉड्यूलनाम-स्विफ्ट.h फ़ाइल कभी भी इससे कोई फर्क नहीं पड़ता कि अन्य स्विच या सेटिंग्स क्या सुझाए गए हैं। अंत में, -Swift.h फ़ाइलों को खोजने के लिए लू जेड की विधि का उपयोग करके, मैंने देखा कि एक चार्ट-स्विफ्ट.h फ़ाइल को मेरे प्रोजेक्ट के एक्सकोड में गहराई से उत्पन्न किया जा रहा था चार्ट्स। फ्रेमवर्क / हेडर /

मेरे प्रोजेक्ट की स्रोत निर्देशिका में कोड को शामिल किए बिना डैनियल गिंडी के आईओएस-चार्ट स्विफ्ट पैकेज का उपयोग करने का समाधान यह था:

#import "Charts/Charts-Swift.h"

मेरे प्रोजेक्ट के डेटा को चार्ट करने वाले मॉड्यूल के लिए।


यदि आप पहले से कोई प्रोजेक्ट बनाने में सक्षम थे, तो “ProductModuleName-Swift.h” not found से संबंधित कोई भी समस्या “ProductModuleName-Swift.h” not found , और अब आपको उस “ProductModuleName-Swift.h” not found त्रुटियों को फिर से मिल रहा है, कारण आपके हालिया परिवर्तनों में हो सकता है।

मेरे लिए यह गलत (आकस्मिक) गलत था। .swift फ़ाइल एन्कोडिंग। परिवर्तनों को वापस लेना और मैन्युअल रूप से वापस लाने, नौकरी करता है।


यदि आप मेरे जैसे हैं तो आपको शायद हेडर नाम गलत हो गया है। थोड़ी देर के लिए मेरे सिर को झुकाव के बाद मैंने DerivedData में फ़ाइल की तलाश की और यकीन है कि यह वहां है। मेरे सेटअप पर (मानक व्युत्पन्न डेटा फ़ोल्डर का उपयोग करके, मुझे विश्वास है):

cd ~/Library/Developer/Xcode/DerivedData
find * -iname '*Swift.h'

इसे मिल जाएगा अगर उस फ़ोल्डर में कुछ भी नहीं है तो एक्सकोड इसे उत्पन्न नहीं कर रहा है।

मैं एक्सकोड संस्करण 6.2 (6 सी 86e) का उपयोग कर रहा हूँ


यदि एक्सकोड वास्तव में आपके -Swift.h हेडर (DerivedData के अंदर गहरा) उत्पन्न कर रहा है लेकिन यह आपके स्विफ्ट कक्षाओं का संदर्भ नहीं देता है, तो सुनिश्चित करें कि आपके पास ब्रिजिंग हेडर भी परिभाषित है। जिस तरह से मैं दस्तावेजों को पढ़ता हूं, मुझे केवल स्विफ्ट से उद्देश्य-सी को कॉल करने की आवश्यकता होती है, लेकिन ऐसा लगता है कि स्विफ्ट को उद्देश्य-सी से भी कॉल करना आवश्यक है।

मेरा उत्तर देखें: https://.com/a/27972946/337392

संपादित करें: यह सार्वजनिक बनाम आंतरिक पहुंच संशोधक की वजह से है, क्योंकि अंत में मैंने ऐप्पल दस्तावेज़ों में समझाया: -

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


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

समस्या को कैसे ठीक करें

निम्नलिखित चरणों ने अंततः मेरे लिए सभी मुद्दों का समाधान किया। मैंने "चिकन और अंडा" का उल्लेख करने वाले किसी व्यक्ति के ऊपर पढ़ा है और यह वही अवधारणा है जिसने मुझे इस प्रक्रिया में ले जाया। यह स्पष्ट प्रक्रिया से पता चलता है कि हेडर उत्पन्न होने के बाद तक किसी को ऑब्जेक्टिव-सी कोड संदर्भ स्विफ्ट कक्षाओं को हटाना होगा।

  1. अपने उद्देश्य-सी कार्यान्वयन फ़ाइल में #import "ProductModuleName-Swift.h" कथन को टिप्पणी करें
  2. स्विफ्ट क्लासेस में उद्देश्य-सी कार्यान्वयन फ़ाइल में किसी भी संदर्भ को टिप्पणी करें
  3. स्वच्छ और बनाएँ
  4. सभी त्रुटियों / चेतावनियों को हल करें
  5. #import "ProductModuleName-Swift.h" कथन पर टिप्पणी हटाएं
  6. स्वच्छ और निर्माण (किसी भी शेष त्रुटियों को सफलतापूर्वक या ठीक करें , सत्यापित करें कि आप इस बिंदु पर उद्देश्य-सी में किसी भी स्विफ्ट कक्षाओं का संदर्भ नहीं दे रहे हैं । अगर अस्थायी रूप से इन्हें बाहर टिप्पणी करें)
  7. सत्यापित करें कि "ProductModuleName-Swift.h" #import "ProductModuleName-Swift.h" कथन के वर्ग नाम पर सीएमडी-क्लिकिंग द्वारा उत्पन्न होता है
  8. उद्देश्य-सी कार्यान्वयन फ़ाइल में स्विफ्ट कक्षाओं को संदर्भित करने वाले कोड पर टिप्पणी हटाएं।
  9. स्वच्छ और सामान्य के रूप में बनाएं ("ProductModuleName-Swift.h" उत्पन्न होना चाहिए और स्विफ्ट क्लासेस का संदर्भ देने वाला आपका उद्देश्य-सी कोड सामान्य के रूप में उपयोग किया जा सकता है)

नोटा बेने: अंडरस्कोर में रिक्त स्थान बदलने के बारे में उत्तर और ऊपर दिए गए अनुसार YES को मॉड्यूल परिभाषित करता है, हालांकि इस प्रक्रिया को निष्पादित करते समय भी लागू होता है, जैसा कि एप्पल प्रलेखन में निर्दिष्ट नियम हैं।

हेडर पथ ब्रिजिंग

एक त्रुटि में, फ़ाइल प्रोडक्ट मॉड्यूलनाम-ब्रिजिंग-हेडर एच फ़ाइल को निर्माण प्रक्रिया के दौरान नहीं मिला था। इस तथ्य ने एक त्रुटि उत्पन्न की

<अज्ञात>: 0: त्रुटि: ब्रिजिंग हेडर '/Users/Shared/Working/abc/abc-Bridging-Header.h' मौजूद नहीं है

त्रुटि के करीब निरीक्षण से संकेत मिलता है कि फ़ाइल वर्णित स्थान पर कभी मौजूद नहीं होगी क्योंकि यह वास्तव में ( गलत पथ ) पर स्थित थी

'/Users/Shared/Working/abc/abc/abc-Bridging-Header.h'। लक्ष्य / परियोजनाओं की एक त्वरित खोज मैन्युअल रूप से सुधार करने के लिए सेटिंग्स का निर्माण करती है और abc-Swift.h फ़ाइल को फिर से स्वतः उत्पन्न किया गया था।


सबसे महत्वपूर्ण बात यह है कि यह फ़ाइल अदृश्य है !!! कम से कम यह एक्सकोड 6 बीटा 5 में है। आपके वर्कस्पेस में "YourModule-Swift.h" नाम की ऐसी कोई फ़ाइल नहीं होगी। बस सुनिश्चित करें कि आपके पास मॉड्यूल का नाम है और मॉड्यूल सेट को हां में परिभाषित करता है, और इसे अपने उद्देश्य-सी कक्षा में उपयोग करें।


* एकमात्र महत्वपूर्ण बात यह है: *

लक्ष्य में परिभाषित "उत्पाद मॉड्यूल नाम" का उपयोग करने के लिए, -Swift.h के बाद

#import <Product Module Name>-Swift.h

// in each ObjectiveC .m file having to use swift classes
// no matter in which swift files these classes sit.

कोई फर्क नहीं पड़ता कि "मॉड्यूल परिभाषित करता है" परम हां या नहीं पर सेट किया गया है या यदि "उत्पाद मॉड्यूल नाम" प्रोजेक्ट सेट नहीं है।

अनुस्मारक: स्विफ्ट कक्षाएं एनएसओब्जेक्ट से प्राप्त होनी चाहिए या ऑब्जेक्टिव / फाउंडेशन के संपर्क में आने के लिए @objc विशेषता के साथ टैग की गई है || कोको ...







swift