Swift 无法将“[[String:Any]]”类型的值转换为预期的参数类型“[String:Any]”

Swift 无法将“[[String:Any]]”类型的值转换为预期的参数类型“[String:Any]”,swift,Swift,这是我的密码: var cardArray2 = [[String:Any]]() insertDataIntoEntity("DeviceEntity", cardArray2) 以下方法调用产生此错误: 无法将“[[String:Any]]”类型的值转换为预期的参数类型“[String:Any]” 这是我的方法签名: func insertDataIntoEntity(_ entityTableName: String, _ arr: [String:Any]){ 我尝试将Any转换为O

这是我的密码:

var cardArray2 = [[String:Any]]()
insertDataIntoEntity("DeviceEntity", cardArray2)
以下方法调用产生此错误:

无法将“[[String:Any]]”类型的值转换为预期的参数类型“[String:Any]”

这是我的方法签名:

func insertDataIntoEntity(_ entityTableName: String, _ arr: [String:Any]){

我尝试将Any转换为Object,但仍然不起作用

尝试将arr参数更改为字典数组:

func insertDataIntoEntity(_ entityTableName: String, _ arr: [String:Any])


cardArray2是一个[[String:Any]]对象,意思是:字典数组,其中键是字符串对象,值是任意对象。您的方法需要一个[String:Any]对象,它表示哪些键是String对象,哪些值是Any对象。你看到这不一样了吧?写_arr:,所以通过阅读我们作为开发人员希望参数是数组,但类型实际上是字典。编译器的信息在这里非常清楚:嵌入一组括号而不是两个括号。你能解释区别吗?你的cardArray2是字典数组,你的方法是Dictionary对象,因此,您应该更改方法参数以获取字典数组
func insertDataIntoEntity(_ entityTableName: String, _ arr: [[String:Any]])