【发布时间】:2020-01-07 04:43:37
【问题描述】:
我正在尝试将 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”
【问题讨论】:
-
你有一个字典而不是一个字符串,你想如何将它作为字符串传递?
-
我只想让 swift 视图控制器读取数组
-
as NSArray as! [String]— 为什么? -
你需要知道你在那个数组中有什么,或者即使它是一个数组,然后 swift 才能像那样读取它
-
你有一个字典数组 ([NSDictionary]) 而不是 [String]。
标签: ios arrays objective-c swift type-conversion