From 793c0fee3fae55917f6e1ed382e0de9a06c7d297 Mon Sep 17 00:00:00 2001 From: Marco Filetti Date: Wed, 18 May 2016 17:44:42 +0300 Subject: [PATCH] Fix for crash on close after searching --- PeyeDF/UI/SearchPanelController.swift | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/PeyeDF/UI/SearchPanelController.swift b/PeyeDF/UI/SearchPanelController.swift index 8741fc8..4783ec4 100644 --- a/PeyeDF/UI/SearchPanelController.swift +++ b/PeyeDF/UI/SearchPanelController.swift @@ -345,18 +345,22 @@ class SearchPanelController: NSViewController, NSTableViewDataSource, NSTableVie } func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject? { + + // check that foundSelections contains valid data first and unwrap values + guard foundSelections.count > row && foundSelections[row].pages().count > 0, + let pages = foundSelections[row].pages() where pages.count > 0, + let page = pages[0] as? PDFPage, document = page.document() else { + return nil + } + if tableColumn?.identifier == kColumnTitlePageLabel { // get found selection for this row - let pages = foundSelections[row].pages() - let page = pages[0] as! PDFPage return page.label() } else if tableColumn?.identifier == kColumnTitlePageNumber { - let pages = foundSelections[row].pages() - let page = pages[0] as! PDFPage - return page.document().indexForPage(page) + 1 + return document.indexForPage(page) + 1 } else if tableColumn?.identifier == kColumnTitleLine {