language swift refcount instance
显示3个强引用的原因可能是因为将实例保留在调试代码中.此外,如果你重复这个命令,你会得到递增的结果:
(lldb) language swift refcount instance
refcount data: (strong = 3, unowned = 1, weak = 1)
(lldb) language swift refcount instance
refcount data: (strong = 4, unowned = 1, weak = 1)
(lldb) language swift refcount instance
refcount data: (strong = 5, unowned = 1, weak = 1)
这是Xcode/runtime bug.
另外,you can use CFGetRetainCount
判断实例上的引用计数:
let instance = TestClass()
print(CFGetRetainCount(instance)) // prints "2"
你得到"2"的原因是instance
被let instance
静态变量保留,以及它被保留在CFGetRetainCount
函数中.你可以通过打电话来证明这一点
print(CFGetRetainCount(TestClass())) // prints "1"