4
我需要检查这是给一个Int(或Int16类型或UINT8)值,即如何区分AnyObject(或强度)输入的XCode 9 - 新夫特编译
在Xcode中8 AnyObject的类型 - 开关在对象上,使用情况: is Uint8
,is Int16
,is Int
作品pefrect。
在Xcode中9 - 它总是输入是可能真尚属首例。
这里是游乐场一个代码示例:
var t1: AnyObject?
var t2: AnyObject?
t1 = 30 as AnyObject
t2 = Int16(30) as AnyObject
if let obj1 = t1 {
switch obj1 {
case is UInt8:
print("UInt8")
case is Int16:
print("Int16")
case is Int:
print("Int")
default:
break
}
}
if let obj2 = t2 {
switch obj2 {
case is UInt8:
print("UInt8")
case is Int16:
print("Int16")
case is Int:
print("Int")
default:
break
}
}
的XCode 8游乐场控制台打印:
诠释
的Int16
的XCode 9游乐场控制台打印:
UINT8
UINT8
A.有人能解释为什么,和/或连接编辑任何有关这方面的文献资料?
B.会很高兴我有人可以帮助我在XCode 9中获得相同的功能。
谢谢。
桥接NSCFNumber究竟是发生了什么。通过打印obj – MatanGold
的'type(of:)'我发现了这个。 'AnyObject'是任何类类型和'Intxx'不是类。因此,作为'AnyObject'的投射必须将其变成'NSNumber'。 – JeremyP