繁体   English   中英

NSViewController未发布

[英]NSViewController not released

我对Windows vs视图控制器的所有权及其发布时间有疑问。 我创建了一个测试项目,仅向NSViewController添加了一行代码:

deinit { print("ViewController Dismissed.") }

当我关闭窗户时为什么不叫它? 我在Instruments中对其进行了分析,并且没有任何内存泄漏,但是仍然有对ViewController的引用。

此外,我尝试了NSWindow上的“关闭时释放”选项,但仍然没有问题。 谁能帮助您理解这一点? 谢谢!!

Instruments的屏幕截图

我只是将其作为评论,但我没有足够的声誉:

您的视图控制器中是否可能有一个闭包来维护对视图控制器或控制器中某些对象的强烈引用? 这是可以创建保留周期的一种方法。 如果是这样,我认为它会出现在乐器中,但这只是一个想法。

此外,您的视图控制器是否在任何较大的导航系统(例如标签栏控制器)中都属于一部分? 那可能是一个因素。 我不确定。

据我所知,您正在运行的应用始终对窗口实例具有很强的引用,而窗口实例又具有对视图控制器的引用。 如果关闭窗口后转到“调试视图层次结构”,则仍会在其中看到。如果在情节提要中将情节提要入口点删除到该窗口,则根本没有该窗口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM