2016-08-23 13 views
8

से किसी भी विधि को ओवरराइड नहीं करता है। मैं अपने कोड को स्विफ्ट 2.2 से स्विफ्ट 3.0 में परिवर्तित कर रहा हूं और मुझे विधि मिली है कि यह सुपरक्लास त्रुटि से किसी विधि को ओवरराइड नहीं करता है। विधि 'layerClass()' ऑब्जेक्टिव-सी चयनकर्ता 'layerClass' एक ही साथ सुपर क्लास 'UIView' से 'layerClass' के लिए गेटर के साथ संघर्ष के साथ:विधि अपने सुपरक्लास स्विफ्ट 3.0 त्रुटि

override class func layerClass() -> AnyClass { 
     return CAShapeLayer.self 
    } 

निकाला जा रहा है ओवरराइड निम्न त्रुटि की ओर जाता है: यहाँ मेरी कोड है उद्देश्य-सी चयनकर्ता

उत्तर

10

layerClass अब एक गेटर है और अब कोई तरीका नहीं है (स्विफ्ट 3 या आईओएस 10 के रूप में)। तो तुम गेटर ओवरराइड करने के लिए है:

override public class var layerClass: Swift.AnyClass { 
    get { 
     return CAShapeLayer.self 
    } 
} 
+3

आप स्पष्ट 'मिल {' btw – Hamish

+0

धन्यवाद छोड़ सकते हैं @Codo यह काम करता है। –

+0

... और अब मैं सीखता हूं कि 'ओवरराइड' कीवर्ड क्यों मौजूद है। अगर यह अस्तित्व में नहीं था, तो यह त्रुटि कभी नहीं होती थी, और ओपी इस धारणा पर जा रहा होता कि उसकी विधि सुपर क्लास से कुछ ओवरराइड कर रही थी। साफ! – Alexander

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