美文网首页Swift
Swift is、isMember、isKind

Swift is、isMember、isKind

作者: 愤斗的小蚂蚁 | 来源:发表于2022-03-28 11:47 被阅读0次

    1. is是关键字.可以用于任何类型的判断.包括了非对象类型,如Int等类型.或者判断对象是参数给定的类或是子类

    let a = 10
    if a is Int {
        print("YES")
    }
    
    let a = NSObject()
    if a is NSObject {
        print("YES")
    }
    
    2. 注意,is是判断类型的. 如果枚举的值是Int,用枚举值去判断是否是Int得到的结果会是false,因为是枚举类型.
    enum MyEnumState : Int {
        case state1         = 0      
        case state2         = 1 
    }
    
    let a = MyEnumState.state1
    if a is Int { // Cast from 'MyEnumState' to unrelated type 'Int' always fails
        print("YES") // Will never be executed
    }
    else {
        print("NO") // 执行
    }
    
    

    3. 判断类的时候效果参考isKindOfClass,如果是该类或者是子类都会返回YES

    4. isMember和isKind方法

    isMember和isKind不是关键字,属于遵循NSObjectProtocol协议并且实现对应方法的协议方法(NSObject默认实现了这些方法,所以继承NSObject就不需要去实现这些方法),用法和is不太一样.

    let a = NSObject()
    if a.isKind(of: NSObject.self) {
        print("YES");
    }
    

    相关文章

      网友评论

        本文标题:Swift is、isMember、isKind

        本文链接:https://www.haomeiwen.com/subject/jkkpjrtx.html