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

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как получить ссылку ShareLink, которая загружает URL-адрес файла для совместного использования только при необходимости

Сообщение Anonymous »

У меня есть метод, который объединяет кучу вещей в zip-файл для совместного использования. Я хочу показать это в SwiftUI, но если я сделаю это так:

Код: Выделить всё

 ShareLink(item: zipUpUsefulThings()
Я расточительно использую операции ввода-вывода для архивирования вещей в папку, когда они не нужны. Я мог бы использовать собственный Transferable иgenerateReport, чтобы отложить вычисления до тех пор, пока они не будут фактически переданы в общий доступ, но это работает только для строк. Если я помещаю URL-адрес в элемент общего доступа, он вычисляется немедленно.
Вот код

Код: Выделить всё

ShareLink(item: ZipLog(), preview: .init("Subscription Debug Log")) {
Label("Share DebugFiles", systemImage: "square.and.arrow.up")
}.controlSize(.regular).buttonStyle(.borderedProminent)

struct DebugLogShare: Transferable {
func generateLogs() -> URL {
return Debug.createZipOfLogs()!
}

static var transferRepresentation: some TransferRepresentation {
ProxyRepresentation { report in
generateLogs()
}
}
}
В этом примере Debug.createZipOfLogs вызывается в тот момент, когда кнопка «Поделиться» прокручивается в поле зрения, и снова, когда пользователь нажимает «Поделиться». Это нежелательно.
Есть ли способ избежать этого и создать общий элемент, который вычисляет свой URL-адрес только в самый последний момент?

Подробнее здесь: https://stackoverflow.com/questions/787 ... hen-needed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»