Swift UID Сохранение документов ненадежно

Почему звонит .saveна внешнем (iCloud) UIDocument так сложно?:frowning: Либо:

  1. занимает вечность и не спасает, или
  2. операция сохранения не удалась, несмотря на вызовstartAccessingSecurityScopedResource() перед вызовом сохранения.
  3. спасает иногда, случайно!

Так неуверен в том, что мне здесь не хватает. Вот мой код для бита сохранения (я имею дело только с текстовыми файлами):

private func saveDocument() {
        if (document == nil) { return }

        saveLabel.text = "Saving.."
        saveLabel.isHidden = false
        saveIndicator.isHidden = false
        saveIndicator.startAnimating()
        if (!(document?.fileURL.startAccessingSecurityScopedResource() ?? false)) {
            self.saveLabel.text = "File is busy!"
            self.saveIndicator.stopAnimating()
            self.saveIndicator.isHidden = true
            Common.alert(view: self, message: "File is busy! Please try again in a bit.")
            self.showRetrySaveButton()
            return
        }

        document?.save(to: fileURL!,
                           for: .forOverwriting,
               completionHandler: {(success: Bool) -> Void in

                self.saveIndicator.stopAnimating()
                self.saveIndicator.isHidden = true
            if success {
                self.document?.fileURL.stopAccessingSecurityScopedResource()
                self.saveLabel.text = "Saved!"
                self.hideSaved()
                self.hideDoneButton()
                
            } else {
                self.saveIndicator.isHidden = true
                self.saveLabel.text = "Save failed!"
                Common.alert(view: self, message: "File save failed! Please try again.")
                self.showRetrySaveButton()
            }
        })
    }

Текстовое поле, которое я использую для сохранения, сохраняет текст загруженным даже после операции сохранения, поэтому я действительно не закрываю UIDocument (действительно ли мне нужно закрыть документ, прежде чем, скажем, открыть тот же документ снова или открыть другой?). Я сохраняю изменения только после завершения редактирования или нажатия кнопки "Готово".

Помощь очень ценится!

0 ответов

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