为什么启动后App开始泄漏?

时间:2019-06-29 06:15:11

标签: ios swift memory-leaks instruments

背景

我已经开发了一个iOS应用程序,当我使用仪器分析内存泄漏时,我发现它在启动后开始泄漏。我非常确定该代码不包含保留周期,至少不包含第一个屏幕的代码。

所以我初始化了一个全新的项目,以检查我的代码是否有问题。

但是,同样的问题。

重现问题

  1. 使用Xcode初始化iOS的新项目,以我为例,我使用Xcode(版本10.2.1(10E1001))。
  2. 无需添加任何类,只需使用已经存在的ViewController.swift
  3. 我更喜欢使用代码来设置UI,因此在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
}
  1. 使用仪器分析泄漏,结果显示

leaks profile result

问题

除了在AppDelegate.swift中设置第一个屏幕UI之外,我没有做任何其他事情,因此应该没有任何保留周期,对吧?

我也尝试了Objective-C,结果相同。

那么,为什么应用程序启动后会开始泄漏?还是我应该了解有关泄漏分析如何工作的任何基本概念?

谢谢!

0 个答案:

没有答案