字典中的Swift内存泄漏

时间:2016-11-14 23:04:31

标签: swift memory-leaks instruments

我使用Swift开发iOS应用程序。 (Xcode 8.1,Swift 3) 我使用Instruments检查我的应用程序是否泄漏。 我注意到当一个类持有对字典的引用时,所以当我在某个函数中填充字典时,Instruments会显示泄漏。例如:

class A { 
 var dic : [String : Int] = [:]

    func f(array: [String]){
      for str in array {
          dic[str] = 5
      }
     }
}

为什么此代码会造成泄漏? 我发现了两件事:

  1. 如果字典是函数中的局部变量,那么它就不会创建泄漏

  2. 如果我用常量替换str" some_const" - 它不会造成泄密。

  3. 如果类型是可选的,我认为它是相关的,但我试图改变它但仍然没有工作。

    更新

    我现在意识到它只发生在iOS 10中,并且它不仅仅是字典,还有很多奇怪的swift-lib泄漏在iOS 9中没有出现。 此外,除了因为这些泄漏之外,应用程序的内存使用量并没有显着增加。

    任何人都知道可能导致泄漏的iOS 10更改?它可能是一个错误吗?

0 个答案:

没有答案
相关问题