У меня есть приложение iOS, которое реализует пользовательский подкласс UIDocument, который инкапсулирует файловую оболочку на пакет данных, архивных объектов и изображений. Первоначально я преобразовал реализацию в UIDocument для поддержки iCloud, но она была слишком ненадежной и поэтому я вынимаю часть iCloud и просто использую UIDocument с локальным хранилищем.Почему loadFromContents вызываются после автосохранения моего UIDocument?
Когда пользователь изменяет данные, я отправляю updateChangeCount: в экземпляр UIDocument, и он периодически автосохраняется в фоновом режиме. Я закрываю документ только тогда, когда приложение переходит в фоновый режим. Я обнаружил, что после автосохранения, который вызывает мой метод contentForType для UIDocument, также вызывается loadFromContents. Я не понимаю этого логически, и это также вызывает проблемы с моим интерфейсом.
Я думал, что loadFromContents будет вызываться только при открытии документа или если документ iCloud был изменен на другом устройстве. Поэтому, когда мой документ автосохраняется в фоновом режиме, он также повторно загружает, что вызывает обновление пользовательского интерфейса, которое иногда может отменить новую незавершенную работу, которая не была сохранена. Я мог бы игнорировать повторную загрузку в пользовательском интерфейсе, но у меня все еще были проблемы с моими данными модели, отличными от объектов пользовательского интерфейса.
Так что же я делаю неправильно, чтобы вызвать такое поведение? Я хотел бы иметь сохранение, не инициировать loadFromContents или понять, как справиться с этим поведением.
Спасибо!