gpt4 book ai didi

ios - Swinject:使用弱作用域会泄漏对象

转载 作者:行者123 更新时间:2023-11-30 12:26:29 24 4
gpt4 key购买 nike

我在我的 swift 项目中使用 Swinject 进行 DI。我认为使用弱对象作用域会导致泄漏。

我有这个虚拟对象

protocol DevTestProtocol: class {}
class DevTest: DevTestProtocol {}

注册如下(我正在使用程序集)

container.register(DevTestProtocol.self) { _ in
return DevTest()
}
.inObjectScope(.weak)

出于测试目的,我在应用程序委托(delegate)中添加了一个属性

var devTest: DevTestProtocol?

在 applicationDidFinishLaunchingWithOptions 中我解析了该对象,然后忘记了它

self.devTest = DI.resolve(DevTestProtocol.self)!
self.devTest = nil

DevTest 实例现在应该已经消失了吗?因为事实并非如此。它仍然在调试内存图中显示为泄漏。 see screenshot

我想这不是预期的行为?我错过了什么吗?对我来说,它看起来像是一个错误,它搞乱了我的整个设置。对此我们能做些什么呢? GitHub issue

最佳答案

没有内存泄漏,这只是 Xcode 8 内存分析工具中的一个错误。请参阅 GitHub issues tracker 中的讨论

enter image description here

关于ios - Swinject:使用弱作用域会泄漏对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44136585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com