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

时间:2019-04-07 08:57:02

标签: ios swift

由于我更新了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.

after debuging debuging more specefic

1 个答案:

答案 0 :(得分:0)

错误消息告诉您if self.flags.inspect: logger.info('Not bringing up TensorBoard, but inspecting event files.') event_file = os.path.expanduser(self.flags.event_file) efi.inspect(self.flags.logdir, event_file, self.flags.tag) return 0 if self.flags.version: print(version.VERSION) return 0 是从items桥接的(它不强制其元素键入),但是当Swift尝试检索元素时,它没有找到{的实例{1}},这就是您所说的数组包含的内容。

从调试屏幕快照中,您可以看到NSArray数组实际上包含mainPageJobObj的实例。

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

NSMutableDictionary

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