यदि आपको बंद करने के अंदर self
संदर्भित करने की आवश्यकता है, तो इसे बनाए रखने के चक्र को रोकने के लिए इसे weak
या unowned
में पास करने का अच्छा अभ्यास है।क्या बंद होने पर नहीं होने पर स्वयं के एक कार्य को पारित करना एक चक्र को पार करता है?
यदि मैं self
से संबंधित फ़ंक्शन को सीधे पास करता हूं, तो क्या यह एक चक्र बनाएगा? या क्या इसे स्वयं को कमजोर करने के लिए बंद होने के अंदर घोंसला होना चाहिए?
को बंद करने में सीधे पासिंग
UIView.animateWithDuration(0.3,
delay: 0.0,
usingSpringWithDamping: 0.7,
initialSpringVelocity: 0.1,
options: .CurveEaseOut,
animations: self.view.layoutIfNeeded, // does this cause retain cycle?
completion: nil)
रैपिंग
UIView.animateWithDuration(0.3,
delay: 0.0,
usingSpringWithDamping: 0.7,
initialSpringVelocity: 0.1,
options: .CurveEaseOut,
animations: { [unowned self] in
self.view.layoutIfNeeded()
},
completion: nil)
ग्रेट स्पष्टीकरण, धन्यवाद – Chris