【发布时间】:2017-01-16 19:45:16
【问题描述】:
我在我的视图控制器上什么也没做,我看到应用程序运行时图表正在发生变化。
这真的是泄漏吗?
第一次显示绿色复选标记,然后显示 1 个泄漏,然后没有新的泄漏。
所以这意味着没有泄漏或仍然有 1 个泄漏但不是新的?
我实际上有一个包含经理强引用的应用程序委托。
class AppDelegate {
var applicationManager = ApplicationManager()
}
我在 ApplicationManager 中的服务很少
class ApplicationManager
{
lazy var apiService: APIService = {
let service = APIService()
return service
}()
lazy var facebookService: FacebookService = {
let service = FacebookService()
return service
}()
}
我有一个功能
func logInUser()
{
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
fatalError()
}
let apiService = appDelegate.applicationManager.apiService
guard let email = emailTextField.text, let password = passwordTextField.text else {
return
}
apiService.loginUserWith(email, password: password) {(result) in
}
这段代码会导致问题吗?
使用我也看到的新工具
我有一个泄漏的对象(它在另一个以前的项目中),但管理器和服务的实现相同。
【问题讨论】:
-
泄漏就是泄漏;一旦一个对象泄漏了,它就永远泄漏了。但这只是一个对象,一次,所以也许你并不在乎。如果您愿意,可以使用 Instruments 来跟踪相关对象的内存管理。
-
@matt,也许是错的,是的,我明白了)但奇怪的是我只分配的服务导致泄露,我可以分享源代码吗?
-
有一个泄漏报告错误stackoverflow.com/questions/39944703/… 所以你的泄漏可能不是真实的。
-
@matt,是的,可能,我还添加了项目,所以这里只有 2 个分类和几行导致泄漏的代码)感谢您的帮助 github.com/matrosovDev/TestXcode8Leaks
-
我从 github 下载了你的项目并运行它。我没有看到任何泄漏,无论是在 Instruments 中还是在 Xcode 的 Memory Graph 中。
标签: ios swift xcode memory-leaks