मेरे ऐप में मैं प्रतिनिधियों का उपयोग कर रहा हूं, ताकि जब भी यह तैयार हो, मैं डेटा को पढ़ सकूं।कमजोर प्रतिनिधि शून्य
मैं दो वर्गों से एक प्रतिनिधि को बुला रहा हूं। यहां मेरा कोड
protocol MyDelegate: class {
func getData()
}
class MyDelegateCalss {
weak var delegate: MyDelegate?
func loadData() {
// doing some actions
if(self.delegate != nil){
self.delegate!.getData!()
}
}
}
एक कक्षा में मैं इस विधि को तालिकादृश्य संख्या में लोड कर रहा हूंऑफक्शन प्रतिनिधि विधि।
class A: UIViewController, MyDelegate {
func somefunc(){
let mydelegatecls : MyDelegateCalss = MyDelegateCalss()
mydelegatecls.delegate = self
mydelegatecls.loadData()
}
func getData(){
// Doing some actions
}
}
यह विधि मैं अन्य कैल्स से लोड कर रहा हूं।
class B: UIViewController, MyDelegate {
open func testfunc(){
let mydelegatecls : MyDelegateCalss = MyDelegateCalss()
mydelegatecls.delegate = self
mydelegatecls.loadData()
}
func getData(){
// doing some other stuff
}
}
class C: UIViewController {
func testfunc(){
let b : B = B()
b.testfunc()
}
}
कक्षा ए से यहां मेरा प्रतिनिधि ठीक काम कर रहा है। और मैं getData विधि को कॉल करने में सक्षम हूं।
कक्षा बी से, प्रतिनिधि नहीं के बराबर और GetData विधि को देखने में असमर्थ
कहा जाता है अगर मैं प्रतिनिधि अपनी कार्यशील ठीक संदर्भित करती हो जाता है। लेकिन इससे स्मृति रिसाव हो जाएगा।
इस मामले को कैसे संभाला जा सकता है?
कहाँ ए और बी में पहली 3 लाइनों है? क्या वे बस कोड स्निपेट की तरह कक्षा में डाल दिए जाते हैं? यदि आप उन्हें 'viewDidLoad' पर ले जाते हैं तो क्या होता है? – Losiowaty
क्या मुझे पता चलेगा कि इस परिदृश्य का वास्तविक उपयोग क्या है? – CodeChanger
संपादित .. 3 लाइनें कुछ तरीकों से हैं .. दृश्य में नहीं है DidLoad @ Losiowaty – Sarah