簡體   English   中英

即使有強大的引用,NSCache也會釋放對象?

[英]NSCache releases objects even when there are strong references to them?

我已經設置了一個基本的NSCache並正在存儲NSObject子類對象。 我觀察到這些對象從緩存中釋放(在應用程序后台運行時),即使有1個其他強引用(通過內存調試器驗證)也是如此。 我在這里想念什么嗎? 據我了解,如果沒有剩余的引用, NSCache將僅在內存壓力下釋放對象。

我認為您正在看到NSCache不會通過所有權圖進行跟蹤,以查看釋放對象是否實際上會節省內存。 它根據自己的本地啟發式方法進行發布。

考慮在這種情況下使用NSCache可能更有意義。 如果還有其他強引用,則緩存的所有者是否不負責對象的創建? 它是您要緩存的查找嗎?

我僅在對象創建成本很高的情況下使用NSCache,但可以隨時進行,並且不會影響對象圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM