Swift 如何从任意对象向下转换到UInt16?

Swift 如何从任意对象向下转换到UInt16?,swift,Swift,我试图将一些值传递给一个接受UInt16值作为参数的函数 我通过解析查询数据库来接收这些值。查询返回类型为AnyObject的对象(我知道它是整数)!为了把它传递到函数中,我必须把它转换成UInt16。然而,Swift似乎不喜欢这样,说UInt16不符合AnyObject协议 我可以向下转换类型AnyObject!成功转换为Int,但我无法将该Int转换为UInt16 有人知道如何解决这个问题吗?您可以使用as类型转换运算符将任何对象转换为Int,但要向下转换为不同的数字类型,您需要使用目标类型

我试图将一些值传递给一个接受UInt16值作为参数的函数

我通过解析查询数据库来接收这些值。查询返回类型为AnyObject的对象(我知道它是整数)!为了把它传递到函数中,我必须把它转换成UInt16。然而,Swift似乎不喜欢这样,说UInt16不符合AnyObject协议

我可以向下转换类型AnyObject!成功转换为Int,但我无法将该Int转换为UInt16


有人知道如何解决这个问题吗?

您可以使用
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)