Как правильно добавить файлы данных в пакет файлов SwiftData ModelDocumentIOS

Программируем под IOS
Ответить
Anonymous
 Как правильно добавить файлы данных в пакет файлов SwiftData ModelDocument

Сообщение Anonymous »

Я работаю над изолированным приложением для macOS/iOS с SwiftUI/SwiftData. Приложение сохраняет свои данные в файл ModelDocument. Но я хочу также сохранить в этом файле большие файлы двоичных данных.
Я создаю сцену DocumentGroup с помощью:

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

    DocumentGroup(editing: Entry.self, contentType: .myDocument) {
MainWindowView()
}
В моем MainWindowView я использую

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

@Environment(\.documentConfiguration) private var documentConfiguration
чтобы получить URL-адрес созданного пользователем URL-адреса файла ModelDocument.
Когда мне нужно добавить большой двоичный файл в файл ModelDocument, я вызываю метод в моей модели:

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

func saveReferencedData(_ data: Data, documentURL: URL?) throws {
let logger = Logger(subsystem: "saveReferencedData", category: "Asset")

if let documentURL {
let referencedFileName = "\(entryIdentifier)_\(assetIdentifier).\(assetType)"
let tempFileURL = documentURL.appending(components: referencedFileName)

if documentURL.startAccessingSecurityScopedResource() {
do {
try data.write(to: tempFileURL, options: [])
} catch {
documentURL.stopAccessingSecurityScopedResource()
throw AssetFileOperationError.unableToSaveReferenceFile
}
self.referencedFileLocation = referencedFileName

logger.debug("Successfully saved image data to: \(referenceFileURL)")
}
documentURL.stopAccessingSecurityScopedResource()
} else {
logger.debug("ERROR! Unable to save referenced image file because document URL is nil.")
}
}
При вызове этого метода файл данных сохраняется, но я сразу же получаю это диалоговое окно:
Изображение

Если я нажму на любой из параметров в диалоговом окне, файл двоичных данных будет удалено.
Я думаю, что это проблема с разрешением, и я неправильно пишу в файл ModelDocument. Но я не могу найти в Интернете никакой информации, чтобы поэкспериментировать дальше.
Есть ли у кого-нибудь опыт работы с настроенным файлом ModelDocument, в который записано больше файлов данных? Если у вас есть какие-либо идеи или советы, мы будем очень признательны.
Большое спасибо за чтение.

Подробнее здесь: https://stackoverflow.com/questions/786 ... le-package
Ответить

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

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

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

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

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