首页 > 解决方案 > NSArray 元素未能匹配 Swift Array 元素类型 Expected NSMutableArray 但找到 __NSDictionaryI:

问题描述

我正在尝试将一个NSMutableArray从 Objective-C ViewController 传递给 Swift ViewController,问题是 Swift ViewController 无法理解NSMutableArray类型,当我尝试访问 Swift 中的数组时,他给了我这个错误我得到了这个错误:

前提条件失败:

NSArray 元素无法匹配 Swift Array 元素类型

预期 NSMutableArray 但找到 __NSDictionaryI

我尝试了多种解决方案,例如NSMutableArray使用以下代码将其转换为 Swift String 数组:

var swiftArray = objCMutableArray as NSArray as! [String]

或这个:

let swiftArray: [String] = mutableArray.flatMap { $0 as? String }

但它总是给我这个错误:

无法将“__NSDictionaryI”(0x1083bdcf8)类型的值转换为“NSString”

标签: iosarraysobjective-cswifttype-conversion

解决方案


试试这个。

if let swiftArray = objCMutableArray.mutableCopy() as? Array<Dictionary<String, AnyObject>> {

}

推荐阅读