【发布时间】:2023-04-10 00:49:01
【问题描述】:
据我了解,在 MonoTouch 中处理 Cocoa 对象时,我们需要保存对它们的引用。这样做的原因是 ObjC 运行时可能仍然持有对对象的引用,如果我们没有对它们的“MonoTouch 引用”,它们可能会被垃圾收集,一旦 ObjC 运行时试图访问它们。
假设,我们有两个 UIViewController 子类,VC1 和 VC2。如果用户单击 VC1 上的按钮,UI 会导航到 VC2,并且用户可以来回导航。如果我每次用户导航到它时都创建一个新的 VC2 实例,那么对旧实例的引用会丢失,因此它们会被垃圾收集,并且应用程序在下次 didReceiveMemoryWarning 传播到 UIViewControllers 时崩溃。
我怎样才能释放旧的引用,这样我就不必每次都使用同一个 VC2 实例? Dispose 似乎还不够。
【问题讨论】:
标签: objective-c uiviewcontroller garbage-collection xamarin.ios didreceivememorywarning