Есть ли лучший способ удалить все аннотации из PDF документа? - PullRequest
1 голос
/ 09 октября 2019

Мне нужно удалить все аннотации из документа PDF с помощью PDFKit. Вот мое решение:

Это решение не работает для меня, потому что в одном случае я получаю исключение при мутировании массива при его итерации.

func removeAllAnnotations() {
        guard let documentCheck = document else { return }
        for i in (0..<documentCheck.pageCount) {
            if let page = documentCheck.page(at: i) {
                for annotation in page.annotations {
                    page.removeAnnotation(annotation)
                }
            }
        }
    }

1 Ответ

0 голосов
/ 09 октября 2019

Если вы хотите избежать проблемы «мутировать во время итерации», просто создайте свою собственную локальную копию массива и выполните итерацию по ней:

func removeAllAnnotations() {
    guard let document = document else { return }

    for i in 0..<document.pageCount {
        if let page = document.page(at: i) {
            let annotations = page.annotations
            for annotation in annotations {
                page.removeAnnotation(annotation)
            }
        }
    }
}

Но, нет, я не знаюлюбой лучший способ удалить все аннотации.

...