我正在尝试将[Dictionary<String,Any!>]
追加到[Dictionary<String,Any?>]
但我一直得到这个错误:
无法将类型为[Dictionary]的值转换为预期的参数类型[Dictionary]
虽然使用swift2
时我没有遇到编译错误。
这是我的代码:
class A{
var statistics = [Dictionary<String,Any!>]();
func1(){
let oldStatiscs = self.func2()
//i am getting the error here.
self.statistics.append(oldStatiscs)
}
func2 () -> [Dictionary<String,Any?>]{
}
}
我为什么在Swift3中会遇到这个错误?在Swift2中我为什么没有遇到这个错误?如何解决这个问题?
谢谢。
nil
值表示缺少键,你可以通过分配nil
值来删除一个键。而在 Objective-C 中,这甚至是不允许的。 - vadian[Dictionary<String,Any!>]
作为变量类型是非法的(它只能存在于少数几个地方)。你必须更改它。如果你不能更改它,那么你就无法升级到Swift 3。你还没有看到错误,但如果你修复了所有其他错误,最终会遇到“隐式解包可选项仅允许在顶层和作为函数结果”。你不能再使用这种类型了(在Swift 2中它是无意义的;在Swift 3中它是非法的)。 - Rob NapierDictionary<String,Any?>
改成Dictionary<String,Any>
? - rmaddy