Swift 排查引用循環


------------恢復內容開始------------

一、最近使用RxSwift在多次信號的嵌套中,發現一個對象始終始終無法釋放

  開始想通過Memory Graph驗證是否沒有釋放,一直報錯,后來確認是Xcode的bug

No reply dictionary received from LeakAgent request

  

 

 

   始終無法確認問題,只能考慮使用一個弱引用的數組來驗證了

  

final class WeakBox<A: AnyObject> {
    weak var unbox: A?
    init(_ value: A) {
        unbox = value
    }
}

類定義
private static var debugArray = [WeakBox<ExampleObject>]()

初始化時

 KeyBoardItemsData.debugArray.append(WeakBox(self))
 dump(list: KeyBoardItemsData.debugArray)

打印
    private func dump(list: [WeakBox<KeyBoardItemsData>]) {
        list.forEach { (item) in
            print(item)
        }
    }

 

經過打印

的確存在部分沒有釋放的對象,但是無法確認引用循環的造成,還需要繼續排查


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM