有没有什么方法可以在运行时使用 Swift 或 Objective-C 运行时区分值类型(例如元组、枚举和结构,包括基元)和对象,也称为 Swift 中的引用类型?
最佳答案
这是一种检查变量是否是类实例的方法:
object_isClass(type(of: yourVariable))
它使用 type(of:) , 它返回变量的动态类型。
这里有一些测试:
let a = 1
let b = ("a", 2.3)
enum MyEnum { case one; case two }
let c = MyEnum.one
struct MyStruct { let property: Int }
let d = MyStruct(property: 0)
class MyClass {}
let e = MyClass()
object_isClass(type(of: a)) //false
object_isClass(type(of: b)) //false
object_isClass(type(of: c)) //false
object_isClass(type(of: d)) //false
object_isClass(type(of: e)) //true
关于objective-c - 将 Swift 值类型与对象(即运行时的引用类型)区分开来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136371/