Получение исключения EXC_BAD_ACCESS при доступе к ненулевой переменной - PullRequest
0 голосов
/ 08 марта 2019

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

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 Ответ

0 голосов
/ 08 марта 2019

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

...