2
我正在運行的儀器來檢查內存泄漏,當綁定這個可觀察到的UIButton標題時,我看到內存泄漏。任何想法我做錯了什麼或我該如何解決這個問題?RxSwift綁定數據到UIButton內存泄漏
override func viewDidLoad() {
...
viewModel?.menuData.asObservable().subscribe(onNext: setupTopMenu).addDisposableTo(disposeBag)
...
}
func setupTopMenu(items: [MenuItemViewModel]) {
topMenuStackView.subviews.forEach({ $0.removeFromSuperview() })
for (i, item) in items.enumerated() {
let button = UIButton(type: .custom)
item.titleUppercased.bindTo(button.rx.title(for: .normal)).addDisposableTo(disposeBag) // memory leak
topMenuStackView.addArrangedSubview(button)
}
}
您確定嗎?如果封閉不屬於班級,我認爲你不必使用[弱/無主] – DAN
但在這個特殊的例子中,它看起來像'setupTopMenu'是視圖控制器的成員。 – tomahh