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