मैं सोच रहा था कि क्या ऐसा हासिल करना संभव है।
मैं इस तरह एक खेल का मैदान है:
protocol Foo {
func testPrint()
}
extension Foo {
func testPrint() {
print("Protocol extension call")
}
}
struct Bar: Foo {
func testPrint() {
// Calling self or super go call default implementation
self.testPrint()
print("Call from struct")
}
}
let sth = Bar()
sth.testPrint()
मैं एक डिफ़ॉल्ट कार्यान्वयन प्रदान कर सकता हूं extension
लेकिन क्या होगा यदि Bar
डिफ़ॉल्ट कार्यान्वयन और अतिरिक्त चीजों में सभी चीजों की आवश्यकता है?
यह हर तरह से कॉलिंग super.
मेथड के समान है, जिसमें class
हर प्रॉपर्टी आदि को लागू करने की आवश्यकता को पूरा किया जाता है, लेकिन मुझे इसके साथ ही हासिल करने की कोई संभावना नहीं दिखती है structs
।
Foo.testPrint(self)()
- समस्या यह है कि यह एक विभाजन दोष के कारण विफल रहता है (दोनों 7.0 जीएम और 7.1 बीटा पर परीक्षण किया गया)