繁体   English   中英

致命错误NSArray元素在xcode10.1更新后无法与Swift数组元素类型匹配

[英]Fatal error NSArray element failed to match the Swift Array Element type after xcode10.1 update

因为我更新了xcode 10.1,就会发生这个错误。

代码是:

class mainPageJobObj   {
    var _id : String = ""
    var avatar :String = ""
    var name : String = ""
    var serviceState = ""
}
items : [mainPageJobObj]!
items // i read it from server and its not empty
let oneItem = items[index] // Fatal error: NSArray element failed to match the Swift Array Element type -- This is what compiler is showing.

在调试之后贬低更多的specefic

错误消息告诉您items是从NSArray桥接的(它不强制键入其元素)但是当Swift尝试检索元素时,它没有找到mainPageJobObj的实例,这就是您所说的数组所包含的内容。

从调试屏幕截图中可以看到items数组实际上包含NSMutableDictionary实例。

快速解决方法是使用适当的items声明:

var items:[String:Any] = slider.mainPageObj.items!
let oneItem = items[index]
let name = oneItem["name"]

一个更好的解决方案是从一开始就使用Swift类型; 如果以JSON格式返回服务器中的数据,则使用Codable创建Swift Struct或Class实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM