Получение исключения EXC_BAD_ACCESS при доступе к ненулевой переменной

Как вы можете видеть на связанном изображении, я получаю:

EXC_BAD_ACCESS (код =1, адрес =0x0)

при доступе outline.numberOfChildrenно lldb показывает, что контур не nil и это outline.numberOfChildren равно 0 (что именно и должно быть в этом случае). Почему это происходит? Благодарю.

ссылка на изображение: 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
 }

ссылка на проект Xcode на github: https://github.com/raphaelreyna/Chapters

1 ответ

Решение

Контур лениво загружен и не может быть загружен, если PDFDocument выпущен из памяти. Решение: сохраняйте сильную ссылку на PDFDocument,

Другие вопросы по тегам