3

памяти происходит, когда я звоню описание на экземпляр LOGGУтечка памяти в стрижа при вызове метода Описание утечки экземпляра

public func writeLog(logs:AnyObject!...) { 
     for i:Int in 0 ..< logs.count { 
      if let logg = logs[i] { 
       var log:String?=logg.description 
       log = nil 
      } 
     } 
} 

Это, как я называю

writeLog("Hi") 

Вот скриншот утечка памяти из приборов

Memory leak in instruments

Утечки по трассировку

Memory leak hierarchy

Любая помощь в решении вопроса высоко ценится!

+1

Является ли writeLog1 таким же, как writeLog? –

+0

Да, теперь я отредактировал мой вопрос –

+1

Может ли проблема быть в методе описания этого объекта? –

ответ

2

Это проблема типажей, но я не уверен, почему AnyObject.description причины.

вместо этого

if let logg = logs[i] { 
       var log:String?=logg.description 
       log = nil 
      } 

пытается изменить свой код, как этого

if let logg = logs[i] as! String{ 
       var log:String?=logg.description 
       log = nil 
      } 

Это не будет бросать любую утечку памяти

так включает условные ветви, чтобы проверить для типа экземпляр и сделать приведение типов и назвать описание!

Voila !!! :)