2015-11-05 12 views
5

स्वत: पूर्ण नहीं कर सकता है मैं एक उद्देश्य-सी प्रोजेक्ट में काम कर रहा हूं और स्विफ्ट को पेश करने की कोशिश कर रहा हूं। मुझे ब्रिजिंग हेडर काम कर रहे हैं ताकि कोड संकलित हो, हालांकि ऑब्जेक्टिव-सी कक्षाओं में से कोई भी स्वत: पूर्ण नहीं उठाया जा रहा है।एक्सकोड 7 में, स्विफ्ट ऑब्जेक्टिव-सी कोड

मैं कोशिश की है:

  1. छोड़ने Xcode/पुन: आरंभ करना कंप्यूटर
  2. (~/Library/डेवलपर/Xcode/DerivedData)
  3. ~/लाइब्रेरी में फ़ाइल निकाल रहा है/पर DerivedData फ़ोल्डर हटाया जा रहा है कैश/com.apple.dt.Xcode
  4. बदलने सिम्युलेटर प्रकार

हालांकि, इन सुझावों को मेरे लिए काम नहीं किया।

स्वत: पूर्ण यूआईकिट, आदि के लिए ठीक काम करता है, और मेरे अन्य स्विफ्ट कोड के लिए। यह केवल ऑब्जेक्टिव-सी कोड है जो ब्रिजिंग हेडर द्वारा खुलासा किया गया है जो स्वत: पूर्ण नहीं होगा।

कोई सुझाव?

+0

क्या यह संकलित और चलाता है? – Darko

+0

हाँ, यह संकलित और ठीक चलाएगा। – Wyatt

+0

ठीक है, मैंने बस अपनी मशीन पर कोशिश की और मैं आपको बता सकता हूं कि इसे काम करना चाहिए; कभी-कभी एक्सकोड स्वतः पूर्ण होने के बारे में मजाकिया हो जाता है, हो सकता है कि आपके कंप्यूटर को पुनरारंभ करें (जो हमेशा चीजों को ठीक करता है, है ना? :)) – Alex

उत्तर

5

मुझे लगता है मैं इस एक पता लगा:

हमारी परियोजना कई लक्ष्यों है, और इनमें से अधिकतर फ़ाइलों कई लक्ष्यों के हैं। यदि आप स्वत: पूर्णता चाहते हैं, तो जिस हेडर को आप आयात कर रहे हैं उसे फ़ाइल के प्रत्येक लक्ष्य के लिए ब्रिजिंग हेडर में आयात किया जाना चाहिए।

जब मैंने हेडर आयात किया तो मैं प्रत्येक ब्रिजिंग हेडर में चाहता था, स्वत: पूर्णता अपेक्षित के रूप में काम करना शुरू कर दिया।

अद्यतन: ऐसा लगता है कि यदि यह सेटअप आपके प्रोजेक्ट के लिए काम करता है तो आप एक ब्रिजिंग हेडर को समेकित कर सकते हैं। जब भी आप एक आयात जोड़ना चाहते थे तो इससे आपको कई हेडर अपडेट करना होगा।

1

मैंने हाल ही में एक बड़ी ज्यादातर-ओबीजेसी परियोजना के साथ इस मुद्दे में भाग लिया। उम्मीद है कि यह किसी की मदद करता है।

मेरे लिए स्वत: पूर्ण इस परियोजना में पहले काम कर रहा था लेकिन फिर सभी उद्देश्य सी कक्षाओं/विधियों के लिए विफल होना शुरू कर दिया। हालांकि परियोजना अभी भी किसी भी मुद्दे के साथ संकलित नहीं है।

मैंने ब्रिजिंग हेडर में मौजूद सभी मौजूदा आयातों पर टिप्पणी करने और एक सरल परीक्षण कक्षा जोड़ने के लिए समाप्त किया, जिसके लिए ऑटो पूर्ण काम किया। फिर जब तक मैं अलग नहीं हो जाता तब तक अन्य सभी आयातों को असम्बद्ध करना जिससे किसी ने समस्या पैदा की।

उदाहरण के लिए मेरी शीर्ष लेख मूल रूप से इस तरह देखा:

#import "MyClass.h" 
#import "MyOtherClass.h" 
#import "SomeThirdPartyModule.h" 
etc... 

मैं ऐसा किया:

#import "SimpleTestClassWithOneMethod.h" 
// #import "MyClass.h" 
// #import "MyOtherClass.h" 
// #import "SomeThirdPartyModule.h" 

और स्वत: पूर्ण SimpleTestClass के लिए काम करना शुरू किया जब स्विफ्ट से इस्तेमाल किया।

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

2

joel.d उत्तर के लिए धन्यवाद, मैंने अपनी परियोजना में एक ही समस्या तय की है।

ब्रिजिंग हेडर में मैं लाइन थी:

#import "BTData.h" 

कृपया ध्यान दें कि कोको फली से कुछ एसडीके था, और हाल ही में हम सब फली अद्यतन किया है, तो शायद thats जब स्वतः पूर्ण समस्याओं शुरू कर दिया है। इस मुद्दे के साथ उपर्युक्त रेखा को प्रतिस्थापित करना और अब सभी obj-c कक्षाएं त्वरित फ़ाइलों में स्वतः पूर्ण हो रही हैं।

#import <Braintree/BTData.h> 
संबंधित मुद्दे