首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误xcode10.1更新后,NSArray元素无法匹配Swift数组元素类型

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

Stack Overflow用户
提问于 2019-04-07 16:57:02
回答 1查看 266关注 0票数 0

因为我更新了Xcode10.1,所以发生了这个错误。

代码是:

代码语言:javascript
复制
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.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-07 17:46:08

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

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

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

代码语言:javascript
复制
var items:[String:Any] = slider.mainPageObj.items!
let oneItem = items[index]
let name = oneItem["name"]

一个更好的修复方法是从一开始就使用Swift类型;如果从服务器返回的数据是以JSON格式返回的,那么使用Codable来创建Swift结构或类实例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55557243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档