簡體   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