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