valueForKeyPathの戻り値(AnyObject?)のキャストについて
class Test : NSObject {
var testUint8: UInt8 = 0x00
var testNSNumber: NSNumber = NSNumber(unsignedChar: 0x00)
}
var test1 = Test()
let a = test1.valueForKeyPath("testUint8") as! UInt8→(1)落ちる
let b = test1.valueForKeyPath("testNSNumber") as! NSNumber
ブレイクを張ってみたところ、下記のようになっており、想定ではUInt8の型となるのではと思っていたので、よくわからなくなっています。
bは (NsNumber) Int32(値)
ちなみに、(1)を
let a = test1.valueForKeyPath("testUint8") as! NSNumber
とすると落ちることはないのですが、やはり、
aは (NsNumber) Int32(値)
となってしまいます。
valueForKeyPathで取得する場合のキャストの方法が何かおかしいのでしょうか。