第一个我试图理解为什么RxFeedback中的react方法在这个例子中没有产生内存泄漏。它的参数之一是效果闭包,这是一个@转义闭包,我不是在削弱它,而是在它里面强烈地捕获self来调用用例。我假设它与RxFeedback无关,而是我对ARC和内存管理的了解。为了测试ViewController的取消分配,我只是从NavigationController中弹出它。我希望你能详细解释为什么这段代码没有创建一个保留周期。提前感谢!
wi3ka0sx1#
没有保留循环。但是,您的视图控制器保存了对视图模型的几个引用(直接和间接)。比如说,你的视图控制器有一个viewModel属性,它还保存了一个disposeBag,它保存了一个disposable,它保存了一个Observable,它保存了视图模型中的闭包,它保存了视图模型.只有当一次性用品也被同一个被捕获的对象保留时,对自身的强捕获才是一个问题。在这种情况下,视图模型是“自身”,但视图控制器是保留一次性用品的控制器(通过其一次性用品袋)。
viewModel
1条答案
按热度按时间wi3ka0sx1#
没有保留循环。但是,您的视图控制器保存了对视图模型的几个引用(直接和间接)。
比如说,你的视图控制器有一个
viewModel
属性,它还保存了一个disposeBag,它保存了一个disposable,它保存了一个Observable,它保存了视图模型中的闭包,它保存了视图模型.只有当一次性用品也被同一个被捕获的对象保留时,对自身的强捕获才是一个问题。在这种情况下,视图模型是“自身”,但视图控制器是保留一次性用品的控制器(通过其一次性用品袋)。