由于内存泄漏问题,我在离开组件页面后清除了我的对象,我已经为NSDate变量调用了dispose
。我的问题是,我们应该调用dispose
获取NSDate变量,还是在离开页面时自动调用dispose
。请分享您的建议。
正如您可以看到写入的对象的生命周期
https://developer.xamarin.com/api/type/Foundation.NSObject/#Lifecycle
使用“new”运算符从C#创建对象时,该对象最初将由C#拥有,C#将保留对该对象的引用。仅当垃圾收集器确定没有挂起的托管引用时,或者在对象上手动调用Dispose方法时,才会删除此引用。
当没有挂起的托管引用时,垃圾收集器将自动清理对象。
回到你的问题,你知道NSDate继承自NSObject,所以当你创建一个NSDate的intance时,实例的生命周期由垃圾收集器管理。离开页面时,将不再使用该实例,垃圾收集器将自动清理该实例。
因此,您可以调用dispose方法来清理它,但总体而言通常不需要这样做。
以下是一个类似的问题链接,可能对您有所帮助:
垃圾收集器只收集基于C#的Variable.but Nsobject不会被垃圾收集器收集。所以我们必须手动删除。通过使用dispose方法。