Swift 如何从任意对象向下转换到UInt16?
我试图将一些值传递给一个接受UInt16值作为参数的函数 我通过解析查询数据库来接收这些值。查询返回类型为AnyObject的对象(我知道它是整数)!为了把它传递到函数中,我必须把它转换成UInt16。然而,Swift似乎不喜欢这样,说UInt16不符合AnyObject协议 我可以向下转换类型AnyObject!成功转换为Int,但我无法将该Int转换为UInt16Swift 如何从任意对象向下转换到UInt16?,swift,Swift,我试图将一些值传递给一个接受UInt16值作为参数的函数 我通过解析查询数据库来接收这些值。查询返回类型为AnyObject的对象(我知道它是整数)!为了把它传递到函数中,我必须把它转换成UInt16。然而,Swift似乎不喜欢这样,说UInt16不符合AnyObject协议 我可以向下转换类型AnyObject!成功转换为Int,但我无法将该Int转换为UInt16 有人知道如何解决这个问题吗?您可以使用as类型转换运算符将任何对象转换为Int,但要向下转换为不同的数字类型,您需要使用目标类型
有人知道如何解决这个问题吗?您可以使用
as
类型转换运算符将任何对象
转换为Int
,但要向下转换为不同的数字类型,您需要使用目标类型的初始值设定项,即:
var o: AnyObject = 1
var n: Int = o as Int
var u: UInt8 = UInt8(n)
您只需添加一个!在转换过程中 比如说,
var amount : Int = user["Amount"] as! Int
我希望它有助于……在Swift中,您可以通过使用要转换为的数据类型的初始化器来“转换”,即NewType(foo)
。