xcode – Swift 3和iOS 10虚假内存泄漏错误
发布时间:2020-12-14 19:20:20 所属栏目:百科 来源:网络整理
导读:在使用iOS 10 E时,Xcode 8中似乎存在(错误的)内存泄漏错误.斯威夫特3. 以下代码报告了Instruments和Xcode 8内存调试器中的内存泄漏: class SomeClass: NSObject { var view: SomeView! deinit { print("SomeClass deinit") }}class SomeView: UIView { weak
在使用iOS 10& E时,Xcode 8中似乎存在(错误的)内存泄漏错误.斯威夫特3.
以下代码报告了Instruments和Xcode 8内存调试器中的内存泄漏: class SomeClass: NSObject { var view: SomeView! deinit { print("SomeClass deinit") } } class SomeView: UIView { weak var reference: SomeClass? deinit { print("SomeView deinit") } } class ViewController: UIViewController { var someProperty: SomeClass? override func viewDidLoad() { super.viewDidLoad() let c = SomeClass() let v = SomeView() c.view = v v.reference = c someProperty = c } } 解决方法
我尝试了不同的变化来确认它确实是一个错误,我的发现是:
>如果不将示例代码中的c分配给someProperty,则两个实例都将在各自的deinit中打印字符串.真正强大的参考周期不会消失. 仅供参考,仅当它被分配给UIViewController的属性时才会发生这种情况.我最初在单例对象中发现了这种行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |