我有一个带有String
和AnyObject
的Dictionary
,所以[String: AnyObject]
。
在一个函数中,我想检查字典值的类型。所以这段代码在 Xcode6-Beta 3 中有效:
for (key, value: AnyObject) in contents {
...
} else if value is Float {
stringValue = String(value as Float) + ","
现在我得到错误:AnyObject is not conversionble to Float
stringValue = String(Float(value)) + ","
也不起作用。
有什么想法吗?
最佳答案
将AnyObject
转换为Float
没有问题。
将 AnyObject
转换为 Float
没有问题,因为您可以看到下面的指令将毫无错误地执行。
var f:Float = value as Float
因为 swift String
没有 intializer
来转换为 Float
如果你这样做了
var str:String = String(f) //This will show error as swift has no intializer for Float
但是Swift只为Int
在String
中添加了初始化器,可以直接转换。Float
没有初始化器。
var i:Int = value as Int
var str:String = String(i) //this will run fine
现在你可以解决你的问题
for (key, value: AnyObject) in contents {
if(value is Int){
}else if value is Float {
//Take this in var and use
var stringValue = "\(value as Float),"
}
}
将来 swift
可能会为 Float
添加初始化器,但目前还没有初始化器。
关于swift - Xcode6 beta 4 向下 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25003264/