我们应该在Xamarin.iOS中为NSDate调用dispose方法吗

时间:2018-10-22 07:32:54

标签: ios xamarin xamarin.forms xamarin.ios

由于内存泄漏问题,我在离开组件页面后清理了对象,在该页面中,我为NSDate变量调用了dispose。 我的问题是 我们应该为NSDate变量调用dispose还是在离开页面时自动dispose。请分享您的建议。

2 个答案:

答案 0 :(得分:0)

如您所见,写入对象的生命周期

https://developer.xamarin.com/api/type/Foundation.NSObject/#Lifecycle

  

使用“ new”运算符从C#创建对象时,该对象   最初将由C#拥有,并且C#将保留对C#的引用   宾语。仅当垃圾收集器删除此引用时   确定没有对它的挂起托管引用,或者何时   您可以手动在对象上调用Dispose方法。

当没有挂起的托管引用时,垃圾收集器将自动清除对象。

回到您的问题,您知道NSDate继承自NSObject,因此当您创建NSDate实例时,实例的生命周期由垃圾收集器管理。当您离开页面时,该实例将不再使用,并将由垃圾收集器自动清除。

因此,您可以调用dispose方法对其进行清理,但总体上来说通常不需要这样做。

以下是一个类似的问题链接,可能会帮助您:

Do you need to dispose of objects and set them to null?

答案 1 :(得分:0)

垃圾收集器仅收集基于C#的变量。但是Nsobject不会被垃圾收集器收集。因此我们必须手动删除。通过使用dispose方法。