Swift 幾種動態判斷類的方法

ZY_FlyWay發表於2018-05-25

拿手勢衝突解決,舉個例子


第一種:  OC之後常用的iskindof

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        NVRLOG(touch.view)
        if (touch.view?.isKind(of:UITableView.self))! {
            return false
        }
        return true
    }

第二種: 通過類名字串判斷,適用於那種不知道類名的。

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        NVRLOG(touch.view)
        if NSStringFromClass((touch.view?.classForCoder)!) == "UITableViewCellContentView" {
            return false
        }
        return true
    }

第三種:OC沒有的語法


func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        NVRLOG(touch.view)
      
        if touch.view is UITableView {
            return false
        }
        return true
    }


相關文章