当前位置: 首页 > 面试题库 >

is和isKindOfClass()之间有区别吗?

寿飞飙
2023-03-14
问题内容

Swift提供了is关键字(和as?)检查对象是否可以成功向下转换:

if foo is MyClass {
    // ...
}

而且NSObjectProtocol还提供了原文func isKindOfClass(aClass: AnyClass!) -> Bool

if something.isKindOfClass(MyClass) {
    // ...
}

对于符合的类NSObjectProtocol,这真的有很大不同吗?


问题答案:

是的,
这是有区别的:is在Swift中可以与任何类一起使用,而isKindOfClass()只能与属于NSObject或实现的那些类一起使用NSObjectProtocol



 类似资料:
  • 问题内容: 和功能之间有什么区别?我知道这有点小,一个是全局的,另一个是完全匹配的类,但是我需要有人指定哪个是哪个。 在Swift 和。 问题答案: 返回接收方 是 指定类的实例 还是 从指定类 继承 的任何类的实例。 当且仅当接收者 是 指定类 的实例 时返回。 大多数情况下,您要用来确保代码也可用于子类。 《NSObject协议参考》进一步讨论了这些方法。

  • 问题内容: 在Python中,以下两个相等测试是否等效? 这是否适用于你要比较实例(a list say)的对象? 好的,这样可以回答我的问题: 因此,测试重视在哪里进行测试以查看它们是否是同一对象? 问题答案: 如果两个变量指向同一个对象,则返回;如果变量引用的对象相等,则返回。 在你的例子中,第二个测试只起作用,因为Python缓存小整数对象,这是一个实现细节。对于较大的整数,这不起作用: 字

  • 问题内容: 我的Google-fu使我失败了。 在Python中,以下两个相等测试是否等效? 这是否适用于您要比较实例(list说)的对象? 好的,这样可以回答我的问题: 因此,==测试重视在哪里is进行测试以查看它们是否是同一对象? 问题答案: 如果两个变量指向同一个对象(如果变量引用的对象相等),则将返回。 在您的情况下,第二个测试仅能工作,因为Python会缓存小的整数对象,这是实现细节。对

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 本文向大家介绍is和==的区别相关面试题,主要包含被问及is和==的区别时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 和PHP 之间有区别吗? 问题答案: 的运算符比较值,而操作者以及比较型。 这意味着: