2015-09-07 5 views
8

मेरी वर्तमान प्रोजेक्ट में स्विफ्ट और ऑब्जेक्टिव-सी कोड दोनों शामिल हैं। दोनों प्रकार की स्रोत फ़ाइल अन्य भाषा से कोड का उपयोग करती है। जब मैं एक पूर्ण स्वच्छ करते हैं और पुन: संयोजित, मैं त्रुटियों के लगभग हर स्विफ्ट वर्ग घोषणा पर Module-Swift.h में मिलता है, फार्म की:ऑटो-जेनरेटेड स्विफ्ट ब्रिजिंग हेडर में 'इंटरफ़ेस घोषणा नहीं मिल सका'

Cannot find interface declaration for 'UIViewController', superclass of 'CustomViewController' 

मेरे लक्षण this question समान परिस्थितियों में, this question के समान हैं। दूसरे शब्दों में:

  • Module-Bridging_Header.h मेरी ऑब्जेक्टिव-सी हैडर, आयात करता है Class.h
  • कार्यान्वयन फ़ाइल Class.m स्विफ्ट हैडर आयात करता है, Module-Swift.h

अगर मैं this question को ansewrs में दृष्टिकोण का पालन करें, मैं निम्न फ़ाइल जोड़कर त्रुटि को हल कर सकते हैं, और इसे Module-Swift.h:

// 
// Module-Swift-Fixed.h 
// Module 
// 

#ifndef Module_Swift_Fixed_h 
#define Module_Swift_Fixed_h 

#import <Foundation/Foundation.h> 

#import <CoreData/CoreData.h> 
#import <UIKit/UIKit.h> 

#import "Module-Swift.h" 

#endif /* Module_Swift_Fixed_h */ 

यह एक भयानक हैक की तरह लगता है। क्या मुझे एक्सकोड में इसे हासिल करने के लिए कुछ उचित तरीका याद आ रहा है?

+0

क्या आप स्विफ्ट 2.0 में हैं? यह एक्सकोड 7 के साथ कोई समस्या प्रतीत नहीं होता है। यदि आप हैं, तो क्या आप प्रोजेक्ट पोस्ट कर सकते हैं? – SwiftArchitect

+1

मुझे एक ही समस्या थी। मेरा (थोड़ा बेहतर?) हैक लापता आयात को ब्रिजिंग हेडर में जोड़ना था। –

उत्तर

0

ओबीजे-सी फाइलों में, आपको स्विफ्ट मॉड्यूल आयात करने की आवश्यकता है (#import "Module-Swift.h" के साथ)।

यह केवल उन फ़ाइलों में करें जहां आप अपने स्विफ्ट मॉड्यूल में परिभाषित प्रकारों का उपयोग करने जा रहे हैं।

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

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