我已经开发了一个iOS应用程序,当我使用仪器分析内存泄漏时,我发现它在启动后开始泄漏。我非常确定该代码不包含保留周期,至少不包含第一个屏幕的代码。
所以我初始化了一个全新的项目,以检查我的代码是否有问题。
但是,同样的问题。
ViewController.swift
。AppDelegate.swift
中,我输入:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let vc = ViewController()
let nc = UINavigationController(rootViewController: vc)
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = nc
window?.makeKeyAndVisible()
return true
}
除了在AppDelegate.swift
中设置第一个屏幕UI之外,我没有做任何其他事情,因此应该没有任何保留周期,对吧?
我也尝试了Objective-C,结果相同。
那么,为什么应用程序启动后会开始泄漏?还是我应该了解有关泄漏分析如何工作的任何基本概念?
谢谢!