Где хранить предварительный просмотр UIDocument? - PullRequest
4 голосов
/ 06 февраля 2012

Я работаю над приложением UIDocument и хочу показать пользователю предварительный просмотр документа, прежде чем он его откроет.Я могу сделать это превью в изображение, когда документ будет закрыт.Но где я должен сохранить это изображение?В другом файле?или есть определенный способ сделать это?

Сейчас я разрабатываю его без поддержки iCloud.Но я хочу иметь решение, которое будет работать с iCloud тоже.UIDocument - это UIManagedDocument.Но сохранение изображения в базе данных сделало бы его бессмысленным.Потому что тогда мне нужно открыть документ, прежде чем я смогу получить предварительный просмотр.

Что вы рекомендуете здесь?Где поставить предварительный просмотр для UIManagedDocument?

Ответы [ 3 ]

2 голосов
/ 22 июня 2012

Вы можете хранить свои документы в каталоге Documents вашего превью-контейнера и в файлах предварительного просмотра документов в каталоге Data контейнера.

Если имена файлов предварительного просмотра будут основаны на именах документов, вы сможете использовать результат запроса метаданных, чтобы получить имена документов, а затем разрешить URL-адреса предварительного просмотра документа.

Таким образом, вы можете загрузить только предварительный просмотр документа, но не весь документ.

2 голосов
/ 11 января 2013

Я не знаю о UIManagedDocuments , но в случае UIDocument я бы порекомендовал использовать NSFileWrapper в качестве формата файла (где документ на самом деле является связанной папкой) и сохранить предварительный просмотр в документе, например «Preview.jpg» (или .png) внутри папки с меткой «QuickLook» . Таким образом, вы также получите предварительный просмотр в Finder на Mac (бесплатно).

Конечно, это может быть или не быть идеальным решением (также в зависимости от того, является ли ваш документ только текстовым). Но это может быть хорошим советом для работы с превью для UIDocuments в целом.

1 голос
/ 06 февраля 2012

Вы должны сохранить изображение в (app_directory) / Library / Caches.Таким образом, iCloud не повлияет на ваше приложение.

...