【发布时间】:2015-10-26 19:37:59
【问题描述】:
在我的UIViewController、viewDidLoad 方法中,我订阅了如下通知:
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.disposable = NSNotificationCenter.DefaultCenter.AddObserver("UserUpdated", () => UserUpdated());
}
我的问题是我应该在哪里移除观察者,以免内存泄漏。通常在 Objective-C 中,我会在 dealloc 方法中删除它。
但是如果我在Dispose方法或者析构函数中尝试Dispose上面的disposable,就会因为循环而出现内存泄漏。防止这种记忆循环的最佳方法是什么?
注意:我不能使用ViewWillAppear/ViewWillDisappear 作为添加/删除观察者的方法,因为当视图控制器的视图不在前台时我需要访问它。
【问题讨论】:
标签: c# ios memory-leaks xamarin xamarin.ios