Я создаю сцену DocumentGroup с помощью:
Код: Выделить всё
DocumentGroup(editing: Entry.self, contentType: .myDocument) {
MainWindowView()
}
Код: Выделить всё
@Environment(\.documentConfiguration) private var documentConfiguration
Когда мне нужно добавить большой двоичный файл в файл 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
Мобильная версия