मैंने एक स्विफ्ट प्रोटोकॉल घोषित किया है:
protocol Option {
var name: String { get }
}
मैं इस प्रोटोकॉल के कई कार्यान्वयनों की घोषणा करता हूं - कुछ वर्ग, कुछ दुश्मनी।
मेरे पास इस तरह घोषित संपत्ति के साथ एक दृश्य नियंत्रक है:
var options: [Option] = []
जब मैं कोशिश करता हूं और इस संपत्ति को वस्तुओं के एक समूह में सेट करता हूं जो Option
प्रोटोकॉल को दूसरे वीसी में लागू करता है prepareForSegue
, तो मुझे एक रनटाइम त्रुटि मिलती है:
fatal error: array cannot be bridged from Objective-C
यह काम क्यों नहीं करता है? कंपाइलर के पास वह सभी जानकारी है जिसकी उसे आवश्यकता है, और मुझे समझ नहीं आ रहा है कि ऑब्जेक्टिव-सी का उसके साथ क्या करना है- मेरी परियोजना में केवल स्विफ्ट फाइलें हैं, और ये सरणियाँ किसी भी फ्रेमवर्क विधियों में या उसके बाहर नहीं आ रही हैं आवश्यकता होती है उन्हें पाटने की NSArray
।
@objc
अपने प्रोटोकॉल को प्रस्तुत करने की कोशिश की ? stackoverflow.com/a/28029568/377369