如何从AnyObject转发到UInt16?

时间:2014-06-06 09:01:40

标签: swift

我正在尝试将一些值传递给一个接受UInt16值作为参数的函数。

我通过Parse查询数据库来接收值。查询返回AnyObject类型的对象(我知道它是一个整数)!并且为了将它传递给函数,我必须将其转换为UInt16。但是,似乎Swift不喜欢这样,说UInt16不符合AnyObject协议。

我可以转发类型AnyObject!成功地使用Int,但是我无法将该Int转换为UInt16。

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

2 个答案:

答案 0 :(得分:6)

您可以使用AnyObject类型强制转换操作符从Int转换为as,但要向下转换为不同的数字类型,您需要使用目标类型的初始值设定项,即:

var o: AnyObject = 1
var n: Int = o as Int
var u: UInt8 = UInt8(n)

答案 1 :(得分:1)

您需要做的就是添加一个!在转换期间之后。

例如,

var amount : Int = user["Amount"] as! Int

我希望它有所帮助...