Если вам нужно указать 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