Index.swift
let boxClass = SelectBox()
override func viewDidLoad() {
super.viewDidLoad()
reloadData()
boxClass.openSelector(defValue: myView)
}
func reloadData(){
self.nowOnline.text = "Waiting ..."
countOnline = 2
}
此代码运行良好。
但如果我想更改另一个类的值,则不使用
SelectBox.swift
class SelectBox {
internal func openSelector(myView:UIView){
myView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleClick(sender:))))
}
}
@objc func handleClick(sender: UITapGestureRecognizer) {
reloadData()
}
代码故事:
1-我去索引应用
2-reloadData()
工作良好
3-我点击myView
,reloadData()
再次调用
4-应用程序崩溃,因为nowOnline
返回nil
class SelectBox {
let indexObj = index()
internal func openSelector(myView:UIView){
myView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleClick(sender:))))
}
@objc func handleClick(sender: UITapGestureRecognizer) {
indexObj.reloadData()
}
}