我尝试将一些值传递给一个接受UInt16值作为参数的函数。
我通过Parse查询数据库来接收这些值。该查询返回一个AnyObject类型的对象(我知道它是一个整数)!为了将其传递到函数中,我必须将其转换为UInt16。然而,看起来斯威夫特并不喜欢这样,说UInt16不符合AnyObject协议。
我可以向下转换AnyObject类型!成功地转换为Int,但我无法将该Int转换为UInt16。
有人知道如何解决这个问题吗?
发布于 2014-06-06 17:39:25
您可以使用as类型转换操作符从AnyObject转换为Int,但要向下转换为不同的数值类型,您需要使用目标类型的初始值设定项,即:
var o: AnyObject = 1
var n: Int = o as Int
var u: UInt8 = UInt8(n)发布于 2015-06-26 06:30:58
你需要做的就是添加一个!在转换过程中的as之后。
例如,
var amount : Int = user["Amount"] as! Int我希望这会有帮助..。
https://stackoverflow.com/questions/24077954
复制相似问题