दिलचस्प पोस्ट
एएसपी.नेट में समाशोधन पृष्ठ कैश जावा के लिए जावास्क्रिप्ट पार्सर पायथन 3 में अनबाउंड विधि ऑब्जेक्ट की कक्षा को परिभाषित करें ट्विटर बूटस्ट्रैप टाइपआहेड अजाक्स उदाहरण पीएचपी में एक जटिल एसोसिएटिव अर्रे पर परावर्तित जावास्क्रिप्ट का उपयोग कर ऑपरेटिंग सिस्टम संस्करण कैसे खोजें जावास्क्रिप्ट चेक अगर चर मौजूद है (परिभाषित / आरम्भिक) पांडुओं में शामिल होने का उपयोग करके vlookup एक सरणी के लिए अभिविन्यास स्टोर – और तुलना करें आप कैसे निर्धारित कर सकते हैं कि सीएसएस वर्ग जावास्क्रिप्ट के साथ मौजूद है? Google मानचित्र एंड्रॉइड एपीआई v2 प्ले स्टोअर एप्लिकेशन में मानचित्र प्रदर्शित नहीं कर सकता एंड्रॉइड सरलक्रारएडैप्टर अद्यतन नहीं करता है जब डेटाबेस बदलता है XAMPP के साथ SSL को सक्षम करना पायथन समय उपाय फ़ंक्शन मैं अनुक्रम में एकाधिक सर्विसलेट कैसे निष्पादित करूं?

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

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

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

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

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

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

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. खेल के मैदान को फिर से तैयार करें और पुराने खेल के मैदान से सभी को कॉपी करें

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