PDFKit后台搜索

时间:2017-10-05 11:15:51

标签: ios swift nsoperationqueue nsoperation

我尝试使用新的iOS PDFKit框架在后台线程上运行搜索。

override func main() {
    if isCancelled {
      return
    }
    pdfDocument = PDFDocument.init(url: book.document.url)!
    pdfDocument.delegate = self
    pdfDocument.beginFindString("test", withOptions: [.caseInsensitive, .diacriticInsensitive]) (async)
    //pdfDocument.findString("test", withOptions: [.caseInsensitive, .diacriticInsensitive]) (sync)

  }

问题是没有任何PDFDocumentDelegate方法被调用,如果我使用TIME Profiler似乎没有发生任何事情。 同步选项有效,但无法取消

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

委托方法适用于同步findString

如果是异步beginFindString,您应该依赖通知:

// Objective - C
PDFDocumentDidBeginFindNotification
PDFDocumentDidEndFindNotification
PDFDocumentDidBeginPageFindNotification
PDFDocumentDidEndPageFindNotification
PDFDocumentDidFindMatchNotification

// Swift
Notification.Name.PDFDocumentDidBeginFind
Notification.Name.PDFDocumentDidEndFind
Notification.Name.PDFDocumentDidBeginPageFind
Notification.Name.PDFDocumentDidEndPageFind
Notification.Name.PDFDocumentDidFindMatch