xcode - Failable och non-failable initializers prevents me to extend NSView and implement NSCoding -


मुझे उपवर्ग को NSView को लागू करने में समस्या आ रही है जो कि लागू करता है NSCoding

init (सांकेतिक शब्दों में बदलनेवाला: NSCoder) की घोषणाओं की तरह लगता है। में परस्पर विरोधी हैं NSView और NSCoding NSView आजकल कहता है कि यह फ़्यूज़ेबल है, लेकिन NSCoding अभी भी कहता है कि यह गैर-फ़्यूज़ल है

जब मैं init (सांकेतिक शब्दों में बदलनेवाला: NSCoder) ओवरराइड करने के लिए कोशिश और अपने कस्टम initialisation करते हैं, Xcode 6.1 मुझे एक त्रुटि संदेश देता है:

गैर-फ़्लेम्याबल इनिशियलाइज़र फंलाइंटर आरिलाइज़र 'इनिट (कॉडर)' के साथ लिखे गए 'इनट?' के लिए चेन नहीं कर सकता है

मुझे मेरे क्लास के कस्टम इनटैट को कैसे करना चाहिए?

यहाँ एक मूर्खतापूर्ण उदाहरण है जहां मैं एक दृश्य विस्तारित करता हूं और मैं अपने दृश्य के लिए एक अतिरिक्त क्लिक काउंटर जारी रखना चाहता हूं।

  आयात कोको आयात फाउंडेशन वर्ग MyView: NSView, NSCoding {var clickCounter: इंट = 0 आवश्यक init (सांकेतिक शब्दों में बदलनेवाला: NSCoder) {super.init (सांकेतिक शब्दों में बदलनेवाला: सांकेतिक शब्दों में बदलनेवाला) coder.encodeObject (self.clickCounter , forKey: "clickCounter")} ओवरराइड समारोह encodeWithCoder (सांकेतिक शब्दों में बदलनेवाला: NSCoder) {super.encodeWithCoder (सांकेतिक शब्दों में बदलनेवाला) coder.encodeObject (self.clickCounter, forKey: "clickCounter")} mousedown (theEvent समारोह ओवरराइड: NSEvent) {clickCounter ++}}  

यहां छवि विवरण दर्ज करें

< p>

आप स्पष्ट रूप से NSCoding के अनुरूप नहीं है, क्योंकि NSResponder (के सुपर क्लास NSView ) पहले से ही यह के अनुरूप है

  आवश्यक init (सांकेतिक शब्दों में बदलनेवाला:।? NSCoder) {super.init (सांकेतिक शब्दों में बदलनेवाला: सांकेतिक शब्दों में बदलनेवाला) self.clickCounter = coder.decodeObjectForKey ( " ClickCounter ") के रूप में Int} < / कोड> 

Comments

Popular posts from this blog

mysql - How to enter php data into a html multiple select box -

java - Can't add JTree to JPanel of a JInternalFrame -

c++ - Cassandra datastax cpp driver - avoiding unnecessary copies -