उदाहरण के लिए, मैं एक क्लास इंस्टेंस पर एक विधि कॉल करना चाहता हूं जो एक संपत्ति में willSet
जोड़ देगा। मैं संपत्ति की घोषणा में willSet
निर्दिष्ट नहीं करना चाहता, क्योंकि मुझे पर्यवेक्षक के भीतर सशर्त तर्क जोड़ने की आवश्यकता होगी, और यह अनावश्यक रूप से हर दूसरे उदाहरण के लिए चलाया जाएगा जिसकी इस विधि को नहीं कहा गया है।प्रारंभिक घोषणा के बाद संपत्ति पर्यवेक्षक जोड़ा जा सकता है?
कुछ इस तरह:
var someProperty: Int
func someMethod() {
someProperty { // this is the syntax/ability I'm unsure about
willSet { ...add some behavior... }
}
...more stuff...
}
आह, इसलिए यह जिस तरह से मैं पूछताछ कर रहा था उसमें यह मूल विशेषता नहीं है। यह समाधान उन दो मुद्दों के आसपास नहीं मिलता है जिनके बारे में मैं चिंतित था: प्रत्येक उदाहरण को 'विलसेट' और इसके परिणामस्वरूप स्थिति को चलाने की आवश्यकता होगी। मैं उम्मीद कर रहा था कि उदाहरणों के पास 'विलसेट' नहीं है, जब तक कि उन्होंने बाद में उस पर्यवेक्षक को कुछ बिंदु पर नहीं जोड़ा हो। – solidcell
प्रदर्शन के साथ आपकी चिंता है? चूंकि ऊपर दिए गए उदाहरण में, यदि आप वैकल्पिक बंद नहीं हैं, तो आप केवल कोड निष्पादित करेंगे, और बंद होने की जांच कर रहे हैं! = Nil में नगण्य प्रदर्शन विधियां हैं। – cmyr
यह आंशिक रूप से भाषा का पता लगाने के लिए है। हालांकि, एक उदाहरण के रूप में, मैं एक ऐसे मामले के बारे में सोच रहा हूं जहां मैं एक ऐसा एक्सटेंशन जोड़ना चाहता हूं जो कुछ तर्क को समाहित करता है और उस संपत्ति पर्यवेक्षक को उसी एक्सटेंशन में समूहीकृत किया जाना चाहिए। – solidcell