public class somethingViewController{
func viewDidLoad(){
let contentImageView = UIImageView()
let contentImageViewTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(somethingViewController.tapped(_:)))
contentImageView.addGestureRecognizer(contentImageViewTapRecognizer)
let stackView = OAStackView(arrangedSubviews: [contentImageView])
self.view.addSubview(stackView)
}
func tapped(sender: UITapGestureRecognizer){
//tapped
}
}
我不認爲這是一個強大的參考週期,但我可能是錯的。之所以我認爲可能是是一個很強的參考週期,是因爲stackView
指向contentImageView
,它通過其在抽頭識別器中的選擇器指向somethingViewController
。這種情況會創建一個強大的參考週期嗎?
如果是強參考週期,我該如何解決問題?
手勢識別不保持很強的參考他們的'target',所以因此也沒有很強的參考週期。 – Rob
您可以編寫'#selector(tapped)'而不是全名'#selector(somethingViewController.tapped(_ :))'。 BTW類通常被命名爲'SomethingViewController',以大寫字母開頭。 – kennytm