因为我更新了Xcode10.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.


发布于 2019-04-07 17:46:08
错误消息告诉您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结构或类实例。
https://stackoverflow.com/questions/55557243
复制相似问题