【发布时间】:2019-03-04 00:48:16
【问题描述】:
我很难理解这个
假设我有一个自定义视图,其中包含要由另一个类(视图控制器)使用的协议
protocol MyViewDelegate : AnyObject {
func parentNeedsToTakeAction(sender: MyView)
}
class MyView : UIView {
...
weak var delegate : MyViewDelegate?
....
func initiateCallBack(){
delegate?.parentNeedsToTakeAction(self)
}
}
并且视图控制器符合这个视图的委托
在我将 self 传回 VC 之前,我知道 VC 持有对视图的强引用,而视图只持有对 VC 的弱引用(通过委托)
但是之后会发生什么?视图的 ARC 现在是 2 还是仍然是 1,VC 持有 1 或 2 个对视图的强引用?
如果在 VC 中我继续采取行动,然后从它的视图中删除发送者(子视图),子视图是否会从内存中释放?
【问题讨论】: