好多场景会导致循环引用,例如使用Block.线程.委托.通知.观察者都可能会导致循环引用. 1.委托 遵守一个规则,委托方持有代理方的强引用,代理方持有委托方的弱引用. 实际场景中,委托方会是一个控制器对象,代理方可能是一个封装着网络请求并获取数据的对象. 例如:ViewController中需从网络中获取数据,让后展示到列表当中,从网络获取的类是 DataUpdateOp //ViewController.m - (IBAction )onRefreshClicked:(id)sender {…