访问非空变量时出现 EXC_BAD_ACCESS 异常

Getting EXC_BAD_ACCESS exception when accessing non null variable

正如您在 linked 图片中所见,我得到:

EXC_BAD_ACCESS (code=1, address=0x0)

访问时 outline.numberOfChildren 但是 lldb 表明 outline 不是 nil 并且 outline.numberOfChildren 是 0(在这种情况下它应该是这样)。为什么会这样? 谢谢。

link 到图像:https://imgur.com/a/StLBued

代码:

 func outlineView(_ outlineView: NSOutlineView, isItemExpandable item: Any) -> Bool { 
  if self.rootOutline != nil {
     if let outline = item as? PDFOutline {
         if outline.numberOfChildren == 0 {  // <- Error here
            return false
          }
         return true
       }
     if self.rootOutline!.numberOfChildren == 0 {
       return false
       }
     return true
    }
  return false
 }

link 到 Xcode 在 github 上的项目:https://github.com/raphaelreyna/Chapters

大纲是延迟加载的,如果 PDFDocument 从内存中释放则无法加载。解决方案:保持对PDFDocument.

的强引用