У меня есть простой массив, который содержит generic functions
.Если хранить listeners
в этом array
, у меня странная проблема с leaks
.Я могу использовать его без проблем с generic types
любого типа, кроме Optional Numeric types
.Например, если я использую Double?
, у меня есть memory leak
.Также проблема возникает только тогда, когда я фиксирую unowned/weak self
.Может кто-нибудь объяснить мне, почему возникает эта утечка и как это исправить?
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var observations = [(Double?) -> Void]()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
observations.append { [unowned self] (new) in
print(self)
}
return true
}
}
Если я изменю observations
на [(String?) -> Void]()
, то проблем не будет.