我有一个关于windows vs view控制器的所有权以及它们何时发布的问题。我创建了一个测试项目,并且只向NSViewController添加了一行代码:
deinit { print("ViewController Dismissed.") }为什么当我关闭窗口时没有调用这个函数?我在Instruments中对它进行了分析,没有任何内存泄漏,但仍然有对ViewController的引用。
此外,我在NSWindow上尝试了“关闭时释放”选项,但仍然没有结果。有人能帮助理解这一点吗?谢谢!!

发布于 2016-03-08 12:31:04
我会简单地把这作为一个评论,但我没有足够的声誉:
你的视图控制器中会有一个闭包来维护对你的视图控制器或控制器中的某个对象的强引用吗?这是创建保留周期的一种方法。如果是这样,我会认为它会出现在乐器上,但这只是一种想法。
另外,你的视图控制器是不是任何更大的导航系统的一部分,比如标签栏控制器?这可能是一个因素。我没有把握。
发布于 2016-03-08 13:21:19
据我所知,您运行的应用程序总是具有对窗口实例的强引用,而窗口实例又具有对视图控制器的引用。
https://stackoverflow.com/questions/35858515
复制相似问题