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

问题描述 投票:0回答:2

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

ios xamarin xamarin.forms xamarin.ios
2个回答
0
投票

正如您可以看到写入的对象的生命周期

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

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

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

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

因此,您可以调用dispose方法来清理它,但总体而言通常不需要这样做。

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

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


0
投票

垃圾收集器只收集基于C#的Variable.but Nsobject不会被垃圾收集器收集。所以我们必须手动删除。通过使用dispose方法。

© www.soinside.com 2019 - 2024. All rights reserved.