Swift2 Swift 2-内省:检查布尔与整数

Swift2 Swift 2-内省:检查布尔与整数,swift2,introspection,Swift2,Introspection,我试图在运行时检查属性的类型。我的问题是,我无法区分Bool和Int。 让我们考虑类: class MyObject: NSObject { var boolProperty: Bool = true } 现在,以下两个wil输出均为true的2倍 是一个类似的问题,但解决方案不知怎么会起作用。在您的示例中,valueForKey行抛出一个错误,您(开发人员)应该知道该类型。您无法在运行时真正检查值类型的确切类型。不是在斯威夫特。在99%的情况下,您不需要这样做。prop.dyna

我试图在运行时检查属性的类型。我的问题是,我无法区分Bool和Int。 让我们考虑类:

class MyObject: NSObject {

    var boolProperty: Bool = true

}
现在,以下两个wil输出均为true的2倍


是一个类似的问题,但解决方案不知怎么会起作用。

在您的示例中,valueForKey行抛出一个错误,您(开发人员)应该知道该类型。您无法在运行时真正检查值类型的确切类型。不是在斯威夫特。在99%的情况下,您不需要这样做。prop.dynamicType会告诉您\uu nscboolean.Type。不过,如果您能举例说明为什么要这样做,这可能会有所帮助,因为也许有更好的方法来做您想做的事情。没有prop.dynamicType会告诉您“NSCFNumber”,这就是问题的根源。@vadian:我对完全相同的代码没有任何概念。也可能不知道作为开发人员的类型。通过这个论证,你也可以认为泛型没用。
let myObject = MyObject()
let prop: Any = myObject.valueforKey("boolProperty")! as Any

print(prop is Bool)
print(prop is Int)