मैं एक प्रोटोकॉल प्रकार मैं के लिए एक बंद बनाने के लिए कोशिश कर रहा हूँ, लेकिन मैं निम्न त्रुटिस्टेटिक सदस्य प्रोटोकॉल Metatype स्विफ्ट पर नहीं किया जा सकता
स्टेटिक सदस्य 'menuItemSorter' पर नहीं किया जा सकता हो रही है प्रोटोकॉल मेटाटाइप 'MenuItem.Protocol'
यहां मेरे कोड का एक कम संस्करण है जिसे मैं एक खेल के मैदान में चलाने की कोशिश कर रहा हूं।
protocol MenuItem {
var order: Int {get}
}
extension MenuItem {
static var menuItemSorter: (MenuItem, MenuItem) -> Bool {
return { $0.order < $1.order }
}
}
class BigItem : MenuItem {
var order: Int = 1
}
let bigItems = [BigItem(), BigItem()]
let sorter = MenuItem.menuItemSorter
मैं MenuItem पर एक वर्ग/स्थिर वर विधि है कि menuItems सॉर्ट कर सकते हैं करने में सक्षम होना चाहते हैं, यह करने के लिए सबसे अच्छा तरीका क्या है?
की संभावित डुप्लिकेट [स्विफ्ट: एक प्रोटोकॉल विस्तार में एक डिफ़ॉल्ट प्रोटोकॉल कार्यान्वयन प्रदान करना] (http://stackoverflow.com/questions/35043292/swift
आप इसे एक प्रकार से पालन कॉल करने की आवश्यकता -प्रोवाइडिंग-ए-डिफॉल्ट-प्रोटोकॉल-कार्यान्वयन-इन-ए-प्रोटोकॉल-एक्सटेंशन) – Hamish
आपकी विशेष कॉन्फ़िगरेशन सुरक्षित हो सकती है, लेकिन मान लीजिए कि 'menuItemSorter' का कार्यान्वयन' MenuItem' की अन्य स्थिर आवश्यकताओं तक पहुंचने के लिए स्वतंत्र है, जो हो सकता है डिफ़ॉल्ट कार्यान्वयन नहीं है। – Hamish