2014-07-25 12 views
25

मेरे पास एक स्विफ्ट प्रोजेक्ट है जहां मैंने UIView के कस्टम सबक्लास के साथ एक फ्रेमवर्क लक्ष्य जोड़ा है, इसलिए मैं एक्सकोड 6 के भीतर इंटरफेस बिल्डर में नए लाइव व्यू का उपयोग कर सकता हूं। लेकिन जब मैं अपने प्रोजेक्ट में UIViewController सबक्लास में @IBOutlet जोड़ने का प्रयास करता हूं तो मुझे मिलता है "अविकसित प्रकार का उपयोग 'MyCustomView'" त्रुटि और मैं अपनी प्रोजेक्ट नहीं बना सकता।स्विफ्ट में आयात स्विफ्ट फ्रेमवर्क: "अविकसित प्रकार का उपयोग 'MyCustomView'"

यहाँ UIViewController उपवर्ग से मेरे कोड है:

import UIKit 
import MyCustomFramework 


class MyViewController: UIViewController { 

    @IBOutlet var myCustomView: MyCustomView? 

} 

और यही 'MyCustomView.swift' 'MyCustomFramework' लक्ष्य के भीतर लग रहा है की तरह है:

import UIKit 

@IBDesignable class MyCustomView: UIView { 

    @IBOutlet var imageView: UIImageView? 

    init(coder aDecoder: NSCoder!) { 
     super.init(coder: aDecoder) 
    } 
} 

किसी को भी पता है कि मैं क्या भूल गए? क्या मैंने इसे गलत तरीके से आयात किया? क्या मैं कुछ भुल गया?

उत्तर

33

आप public के रूप में वर्ग को चिह्नित करना चाहिए, क्योंकि यह अलग ढांचा मॉड्यूल

@IBDesignable public class MyCustomView: UIView { 

} 

का हिस्सा है डिफ़ॉल्ट वर्गों और तरीकों से internal पहुंच के स्तर पर किया जाएगा। यदि आप उस लक्ष्य के उस बाहरी पक्ष का उपयोग करना चाहते हैं तो आपको इसे सार्वजनिक रूप से चिह्नित करना चाहिए। फिर केवल यह सार्वजनिक इंटरफेस का हिस्सा होगा (लक्ष्य के बाहर के लिए दृश्यमान)

+1

मुझे लगता है कि ऐप्पल से प्रत्येक एकल बीटा अपडेट के लिए हमेशा पूर्ण रिलीज नोट्स पढ़ना अच्छा विचार है। यह सुविधा अद्यतन के माध्यम से जोड़ा गया था और मैंने परिवर्तन को नोटिस नहीं किया था। संकेत के लिए धन्यवाद! :) – Dschee

+4

हम्म मुझे कुछ और गलत करना होगा। – Morkrom

+0

मुझे अभी भी समस्याएं आ रही हैं, लेकिन मेरा फ्रेमवर्क कोड नहीं है, यह मेरा कोड है ... – Unome

0

मुझे एक और परियोजना बी के अंदर अपने कस्टम फ्रेमवर्क ए आयात करने के बाद एक ही त्रुटि का सामना करना पड़ा, यहां तक ​​कि मेरे सभी वर्ग सार्वजनिक थे।

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

तब सब कुछ सफलतापूर्वक संकलित किया गया।

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