Получить localizedName из UIDocument без загрузки всего документа?

У меня есть UIDocumentприложение, которое показывает список документов, хранящихся в iCloud. Я получаю их имена (для отображения) из NSMetadataItem с metadataItem.value(forAttribute: NSMetadataItemDisplayNameKey), Документы содержат строку, и я переопределил localizedName свойство для создания лучшего имени, содержащего эту строку. В идеале я хотел бы показать свойство localisedName UIDocument прежде чем он был загружен. Есть ли способ сделать это?

Я храню свой UIDocument как FileWrapper содержащий FileWrappers для каждой части документа. В моем случае это просто UIImage и String,

Мне удается получить миниатюру, не загружая документ, поэтому мне было интересно, есть ли эквивалентная вещь для этой строки.

Я использую Swift 4, но я не думаю, что это имеет какое-то значение здесь. Большое спасибо.

1 ответ

Джош,

fileURL.deletingPathExtension (). lastPathComponent

даст вам эквивалент не переопределенного localizedName.

Из вашего поста я могу сделать вывод, что вы знаете, что ваш metadataquery.results даст вам список URL. Вы можете использовать это на любом URL.

К вашему сведению, переопределенное localizedName не будет работать даже после создания экземпляра вашего UIDocument, сначала вы должны открыть его, что выглядит глупо.

Если вам нужно сделать имя более причудливым и не основанным на fileURL, то, насколько я могу судить, вам сначала нужно открыть файл.

Я знаю, что вы понимаете это, но для других, переопределение localizedName просто позволяет вам изменить его на строку, которую вы хотите, чтобы, вероятно, в зависимости от местоположения пользователя, с улыбающимся лицом.

Использование fileWrappers позволит вам открыть и получить любую сохраненную переменную и не нужно будет открывать "Большой объект". Миниатюры раньше загружались таким образом, но с тех пор, как они добавили файловый браузер, они были обновлены до нативных для облачных.

Вам не хватает времени, чтобы открыть их для отображения в TableView, CollectionView? Причина, по которой я спрашиваю, заключается в том, что UIDocument не совместим с ARC, пока файл открыт, и Deamon, который соединяет его с облаком, будет сохранять жесткую ссылку, замедляя Deamon, как я полагаю, и не позволяя UIDocument деинициализироваться, если TableViewCell повторно используется до закрытия файла, т.е. указатель на документ теряется.

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