swift - नई परियोजना फ़ाइलों को UIKit के आयात की आवश्यकता होती है




frameworks xcode6 (2)

मेरे पास एक प्रोजेक्ट ए है, जिसे मैंने स्विफ्ट 1-Xcode6 के साथ लिखना शुरू किया था। मेरे पास कुछ एक्सटेंशन फ़ाइलें हैं जैसे:

extension UIView {
    convenience init(x: CGFloat, y: CGFloat, w: CGFloat, h: CGFloat) {
        self.init(frame: CGRect(x: x, y: y, width: w, height: h))
    }
}

मैंने एक नई परियोजना बी बनाई और वहाँ इन एक्सटेंशन फ़ाइलों की प्रतिलिपि बनाई। मुझे यह त्रुटि मिल रही है:

UIViewExtensions.swift:11:11: Use of undeclared type 'UIView'

प्रोजेक्ट ए में फ़ाइलें UIKit को शामिल करने की आवश्यकता नहीं है, लेकिन प्रोजेक्ट-बी करता है क्या कारण है?


यह शायद इसलिए होता है क्योंकि आप अपने ब्रिजिंग हेडर में कुछ उद्देश्य-सी फ़्रेमवर्क आयात करते हैं जो UIKit को इसकी .h फाइल में आयात करता है - जो स्वचालित रूप से अपने सभी स्विफ्ट कक्षाओं में यूआईकिट आयात करता है


UIView को UIKit ढांचे में परिभाषित किया गया है, इसलिए उस वर्ग के उपयोग से एक स्विफ्ट फाइल को import UIKit करने की आवश्यकता है।

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

यही कारण हो सकता है कि आप इसे अपने पुराने प्रोजेक्ट में स्विफ्ट फ़ाइल में स्पष्ट रूप से आयात नहीं कर सकते।





uikit