检测 class 是 UIView subclass 还是 UIView

Detect if class is UIView subclass or UIView exactly

有什么方法可以区分 UIView subclass 和 UIView class 之间的区别吗?

喜欢:

func(UITableView) = false
func(UIView) = true

您可以使用 type(of:) 获取变量的类型,然后将其与 UIView.self 进行比较,使用相等运算符(==!=).

extension UIView {
    var isCustomView: Bool {
        type(of: self) != UIView.self
    }
}

class MyCustomView: UIView {}

UIView().isCustomView // false
MyCustomView().isCustomView // true