如何修复错误:Xcode上的线程1:EXC_BAD_INSTRUCTION(代码= EXC_i386_INVOP,子代码= 0x0)

时间:2017-06-30 16:45:14

标签: ios swift xcode multithreading macos

当我尝试在iOS模拟器上运行我的应用时,它会崩溃并且我收到此错误代码:Thread 1: EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP, subcode=0x0)

出现错误的区域的代码是:

  var appData = [Section: [AppDetail]]()
for (sectionName, apps) in appDataPList {
  let appDetails: [AppDetail]
  appDetails = apps.flatMap(AppDetail.init(plistData:))
  let section = Section(rawValue: sectionName)!
  appData[section] = appDetails
}

return appData

1 个答案:

答案 0 :(得分:0)

从您提供的代码中,您很可能会收到此错误,因为您强行展开了一个可选的"!"在这里:let section = Section(rawValue: sectionName)!

而是试试这个:

if let section = Section(rawValue: sectionName) {
   appData[section] = appDetails
} else {
   print("error creating section")
}

您可以通过代码完成工作并弄清楚为什么您会获得零值。

您还应该阅读有关选项here的更多信息。