Как сделать приложение на основе документов с SwiftDataIOS

Программируем под IOS
Anonymous
Как сделать приложение на основе документов с SwiftData

Сообщение Anonymous »

У меня есть приложение для iOS, которое использует SwiftData с типами @Model. Я переношу его в MacOS и хочу приложение на основе документов, где каждое окно является собственным документом (например, TextEdit). Я понимаю базовую настройку документа с помощью DocumentGroup. Вот пример: < /p>
struct Document: FileDocument {
static var readableContentTypes: [UTType] {
[.textDocument]
}

var text: String

init(text: String = "") {
self.text = text
}

init(configuration: ReadConfiguration) throws {
guard let data = configuration.file.regularFileContents, let string = String(data: data, encoding: .utf8) else {
throw CocoaError(.fileReadCorruptFile)
}

text = string
}

func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper {
let data = Data(text.utf8)
return .init(regularFileWithContents: data)
}
}

struct DocumentView: View {
@Binding var document: Document
@State var textSelection: TextSelection?

var body: some View {
TextEditor(text: $document.text, selection: $textSelection)
}
}

@main
struct TextEditorApp: App {
var body: some Scene {
DocumentGroup(newDocument: Document()) { file in
DocumentView(document: file.$document)
}
}
}
< /code>
В моей версии iOS «документ» - это тип @Model, сохраненный с помощью SwiftData. Могу ли я использовать этот же подход для приложения MacOS на основе документов? Примеры, которые я видел, показывают только с использованием SwiftData в приложении MacOS, которое отображает все приложение в окне, а не только отдельные документы.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -swiftdata

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