由于我更新了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.
答案 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实例。