[英]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.