以下表达式之间有什么区别吗?
if someInstance is SomeClass {
}
if someInstance.isKindOfClass(SomeClass) {
}
Run Code Online (Sandbox Code Playgroud)
我将假设它.isKindOfClass()是来自Cocoa的实例方法.
is可以是任何类型或协议,而参数.isKindOfClass()必须是引用类型(即类).您还可以@objc使用.conformsToProtocol()而不是以.isKindOfClass()相同的方式测试协议的一致性.is是任何表达式,而接收者.isKindOfClass()必须是对象引用.如果表达式的编译时类不知道支持.isKindOfClass(),编译器会抱怨,但你可以通过将左侧强制转换来克服这个问题AnyObject.所有Swift类实际上都支持.isKindOfClass()运行时.is是必须在编译时进行硬编码的类型.参数.isKindOfClass()可以是变量或其他表达式,其值在运行时计算.| 归档时间: |
|
| 查看次数: |
2236 次 |
| 最近记录: |