在项目中实现自定义Subscribable
类之后。
我在应用程序中收到内存泄漏。
班级守则。
open class Subscribable<T> {
private var _value: T?
private var _subscribers: [(T?) -> Void] = []
open var value: T? {
get {
return _value
}
set {
_value = newValue
for f in _subscribers {
f(value)
}
}
}
public init(_ value: T?) {
_value = value
}
open func subscribe(_ subscribe: @escaping (T?) -> Void) {
if let value = _value {
subscribe(value)
}
_subscribers.append(subscribe)
}
}
我假设_subscribers
将保留对数组的强引用。
答案 0 :(得分:1)
我认为默认情况下属性带有强引用。
未指定弱或无主可能会创建参考周期。
此外,数组中的项目也具有来自该数组的强引用。
您可能想查看此
https://marcosantadev.com/swift-arrays-holding-elements-weak-references/