में अपनी बेस क्लास से एक उप-वर्ग लौट रहा है, मैं उप-वर्ग के एक उदाहरण को वापस करने के लिए एक सुपर क्लास में एक विधि को अनुमति देने की कोशिश कर रहा हूं ताकि मैं माता-पिता और बच्चे दोनों के तरीकों के साथ विधि श्रृंखला का उपयोग कर सकूं।स्विफ्ट
हालांकि, जब मैं विधियों को श्रृंखलाबद्ध करने का प्रयास करता हूं तो मुझे त्रुटि मिल रही है "बेस क्लास में किसी अन्यChainableMethod नामक सदस्य नहीं है"।
class BaseClass {
func someChainableMethod() -> BaseClass {
return self
}
}
class ChildClass: BaseClass {
func someOtherChainableMethod() -> ChildClass {
return self
}
}
let childClass = ChildClass
childClass.someChainableMethod().someOtherChainableMethoid()
मुद्दा यह है कि 'वापसी स्वयं की मूल श्रृंखला में सक्षम विधि में टाइप BaseClass
बजाय ChildClass
साथ एक उदाहरण लौटा रहा है लगता है: यहाँ मेरी कोड है।
मैं भी जेनरिक के साथ इस की कोशिश की और विफल रहे हैं, यह है कि मैं क्या करने की कोशिश की है:
class BaseClass<T> {
func someChainableMethod() -> T {
return self
}
}
class ChildClass: BaseClass<ChildClass> {
func someOtherChainableMethod() -> ChildClass {
return self
}
}
let childClass = ChildClass
childClass.someChainableMethod().someOtherChainableMethoid()
इस मामले में त्रुटि BaseClass
someChainableMethod
विधि से है, "BaseClass टी के लिए परिवर्तनीय नहीं है।"
यह वही है जो मुझे चाहिए, बिल्कुल सही धन्यवाद! :) – user3067870