दिलचस्प पोस्ट
मौजूदा स्कीमा से तालिका रिलेशनशिप उत्पन्न करें (SQL सर्वर) cout << के साथ char * तर्क मुद्रित स्ट्रिंग, पॉइंटर वैल्यू नहीं मैं अपने एचटीएमएल कैनवास में धूमिल पाठ कैसे ठीक करूं? इकाई फ़्रेमवर्क 3 टेबल्स में शामिल हों एंड्रॉइड में सभी अक्षर को प्रदर्शित करने के लिए एक वर्णानुक्रमिक स्क्रॉलबार कैसे बनाएं? बीन प्रॉपर्टी के लिए बाध्यकारी इनपुट वैल्यू के बिना बीन विधि को इनपुट टेक्स्ट मान दें स्ट्रिंग से गैर-अंकों को फ़िल्टर करें CMake में सामान्य संकलन झंडे सेट करने के लिए आधुनिक विधि क्या है? कैसे एक वस्तु पर पिछले उम्मीदों को साफ करने के लिए? एक टेबल से सभी रिकॉर्ड कैसे चुनते हैं जो किसी अन्य तालिका में मौजूद नहीं हैं? Jquery UI टूलटिप HTML सामग्री का समर्थन नहीं करता है डेट स्ट्रिंग को अलग स्वरूप में कैसे परिवर्तित करें मैस पर बूस्ट कैसे स्थापित करते हैं? git बनाम बनाम। बहिष्कार बनाम मान-अपरिवर्तित जेएसपी / सर्वलेट वेब अनुप्रयोग में एक्सएसएस की रोकथाम

अपनी खुद की प्रोजेक्ट से एक खेल का मैदान में अपने वर्गों को कैसे आयात करें

इस तरह एक सेटअप मान लें:

  • आपके पास एक Xcode 6 प्रोजेक्ट है, जहां आपने ऑब्जेक्ट-सी और स्विफ्ट दोनों के साथ अपने स्वयं के क्लासेस (MyView और MyViewController) को लागू किया है
  • आपने अपनी परियोजना में एक खेल का मैदान जोड़ा है

खेल का मैदान में, import कुंजीशब्द के साथ UIKit जैसे मॉड्यूल (चौखटे) आयात करना संभव है आप खेल के मैदान से परियोजना के अन्य वर्गों तक पहुंच को कैसे सक्षम करते हैं?

सिर्फ एक त्रुटि संदेश के साथ सीधे परियोजना वर्गों का उपयोग करने का प्रयास कर रहा है: अनसुलझे पहचानकर्ता 'MyView' का प्रयोग

Solutions Collecting From Web of "अपनी खुद की प्रोजेक्ट से एक खेल का मैदान में अपने वर्गों को कैसे आयात करें"

Xcode 6.0 बीटा 5 के रूप में, अब अपने स्वयं के फ्रेमवर्क को खेल के मैदान में आयात करना संभव है यह आपके अनुप्रयोगों और खेल के मैदानों के बीच कोड को साझा करने का एक तरीका प्रदान करता है, जो आपके फ्रेमवर्क को आयात कर सकता है। यह करने के लिए:

  1. आपका खेल का मैदान उसी कार्यक्षेत्र में होना चाहिए, जो आपके ढांचे का उत्पादन करता है। आपके वर्कस्पेस में एक लक्ष्य शामिल होना चाहिए जो एक पूर्व-निर्मित ढांचे का उपयोग करने के बजाय ढांचे का उत्पादन करता है।

  2. आपने पहले से ही अपना ढांचा बनाया होगा। अगर यह एक आईओएस फ्रेमवर्क है, तो इसे 64-बिट रन गंतव्य (जैसे आईफोन 5 एस) के लिए बनाया जाना चाहिए, और सिम्युलेटर के लिए बनाया जाना चाहिए

  3. आपके पास एक सक्रिय योजना होनी चाहिए जो कम से कम एक लक्ष्य बनाता है (यह कि लक्ष्य का निर्माण स्थान खेल के मैदान के लिए ढांचे के खोज पथ में उपयोग किया जाएगा)।

  4. आपका "बिल्ड स्थान" प्राथमिकता (Xcode के उन्नत "स्थान" सेटिंग में) को "लेगसी" पर सेट नहीं किया जाना चाहिए

  5. यदि आपका ढांचा स्विफ्ट ढांचा नहीं है तो "परिभाषित करता है मॉड्यूल" बिल्डिंग सेटिंग को "हां" पर सेट किया जाना चाहिए।

  6. आपको फ्रेमवर्क के लिए अपने खेल के मैदान में एक आयात स्टेटमेंट जोड़ना होगा।

एक बार इन सभी शर्तों को पूरा कर लिया जाए, तो आपका ढांचा आयात करना एक खेल का मैदान में काम करेगा।

एक्सकोड 7 में हमने एक अन्य तंत्र पेश किया है, जिसका उपयोग आप अपनी कक्षाओं को स्रोत के रूप में आयात करने के लिए उपयोग कर सकते हैं, एक ढांचे को आयात करने के बजाय; आप http://help.apple.com/xcode/mac/8.0/#/devfa5bea3af पर इस "सहायक स्रोत" समर्थन के बारे में पढ़ सकते हैं

मैं वास्तव में यह करने के लिए मौजूदा प्रोजेक्ट में अन्य स्विफ्ट फ़ाइलों को संदर्भित करने में कामयाब रहा हूं:

  • एक खाली खेल का मैदान बनाएं और जगह कहीं भी आपकी परियोजना के अंतर्गत है।
  • YourPlayground.playground में YourPlayground.playground बंडल खोलें (हाँ, यह एक बंडल = निर्देशिका है)।
  • vi साथ उदाहरण के लिए contents.xcplayground संपादित करें और इस तरह एक और खंड जोड़ें:
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <playground version='3.0' sdk='iphonesimulator'> <sections> <code source-file-name='section-1.swift'/> <code source-file-name='section-2.swift'/> </sections> <timeline fileName='timeline.xctimeline'/> </playground> 
  • section-1.swift नाम section-1.swift लिए section-1.swift करें। section-2.swift (यदि आप स्क्रैच से खेल का मैदान section-1.swift , तो आपके बंडल में एक उदाहरण section-1.swift होना चाहिए)
  • section-1.swift नाम वाला एक हार्ड लिंक (प्रतीकात्मक लिंक काम नहीं कर रहा है) section-1.swift जो बंडल के बाहर आपके स्विफ्ट क्लास फ़ाइल में section-1.swift :
 ln ../../Classes/MyView.swift section-1.swift 
  • Xcode को बंद करें और फिर से खेल का मैदान खोलें।
  • अब इसमें दो खंड होंगे, जो आपकी स्विफ्ट क्लास फाइल की सामग्री के साथ होगा और दूसरा एक उदाहरण होगा जिसमें आपको खेल का मैदान खरोंच से बनाया गया था।

इस तरह मैं वास्तव में खेल का मैदान के बाहर झूठ बोलने वाला कोड चला सकता हूं, लेकिन एक्सकोड इस तरह से करते समय अधिक बार क्रैश करता है।

संपादित करें:

एक्सकोड 6 बीटा 5 के रूप में अब आप प्रोजेक्ट फाइल का उल्लेख कर सकते हैं, क्योंकि रिक बलार्ड अपने जवाब में निर्देश देता है।

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

 import ModuleName 

आप बिल्ड सेटिंग में मॉड्यूल का नाम देख सकते हैं। यह आमतौर पर लक्ष्य नाम के समान है

उस कोड को याद रखें जिसे आप public देखना चाहते हैं खेल के मैदान में परिवर्तन उपलब्ध होने से पहले आपको इस परियोजना का निर्माण करना होगा। (फिर से निष्पादन को ट्रिगर करने के लिए आपको खेल का मैदान भी संपादित करना होगा।)

जरूरी

खेल के मैदान को लक्ष्य के समान नाम न दें! यदि आप करते हैं, तो आयात करने का काम लगता है लेकिन खेल का मैदान निष्पादित करने की कोशिश में आपको निम्न त्रुटि मिल जाएगी:

खेल का मैदान निष्पादन विफल रहा: त्रुटि: प्रतीकों को देख नहीं सका:

मुझे लगता है कि बाहर का पता लगाने पर एक घंटे बर्बाद 🙂

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

बस अपनी प्रोजेक्ट में एक खेल का मैदान बनाएं, उसमें 'निर्देशिका' नाम की एक निर्देशिका है, बस उस फ़ोल्डर की एक कॉपी को खींचें और उस खेल का मैदान तब तक पहुंच पाएगा,

उदाहरण के लिए:

यहां छवि विवरण दर्ज करें

मैंने Sources फ़ोल्डर्स में बस मेरी सारी स्विफ्ट फाइलों को लिंक दिया है:

 cd /path/to/project/MyPlayground.playground/Sources ln -s ../../*.swift . 

इस तरह आपकी स्रोत फ़ाइल में परिवर्तन आपके खेल के मैदान में तुरंत प्रभावी होगा बहुत अच्छी तरह से काम किया

Xcode 8.2, स्विफ्ट 3.0.1, मैकोज़ सिएरा

आपको बस इतना करना है – शुरुआत में लिखना है:

 import ModuleName 

(अपने खेल के मैदान को ढांचे / परियोजना के रूप में एक ही कार्यक्षेत्र में रखा गया है)

यदि यह काम नहीं करता है:

  1. अपनी परियोजना के पुनर्निर्माण

  2. खेल के मैदान को फिर से तैयार करें और पुराने खेल के मैदान से सभी को कॉपी करें

यह बहुत सारे अजीब त्रुटियों को विफल करता है जो कि असल में है और जो कुछ भी आयात करता है!