为什么“类型检查”在SWIFT和OBJECT-C上表现不同?

krugob8w  于 2022-10-04  发布在  Swift
关注(0)|答案(0)|浏览(76)
class A: NSObject {
    let value: Int

    init(value: Int) {
        self.value = value
    }
}

class B: NSObject {
    let value: Int

    init(value: Int) {
        self.value = value
    }
}

class Main: NSObject {
    @objc func printValue(_ instanceA: A) {
        print("Value: (instanceA.value)")
        print("instanceA is A? (instanceA is A)")
        print("instanceA is kind of A? (instanceA.isKind(of: A.self))")
    }
}

Main().perform(NSSelectorFromString("printValue:"), with: B(value: 2))

如果我们运行上面的代码,我们可以得到以下结果:

Value: 2
instanceA is A? true
instanceA is kind of A? false

我们可以看到instanceA is AinstanceA.isKind(of: A.self)不同,你知道为什么吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题