一种在 SwiftUI 环境中方便地访问文件系统的方法。
假设您有一个名为“Project”的数据类型。
struct Project: Codable, Equatable, Container {
let name: String
// See wiki/typical-implementation
}
通过遵循上述协议,您现在可以创建 Directory<Project>
或 PhotosDirectory<Project>
。
struct ContentView: View {
@StateObject var store: Directory<Project>
var body: some View {
List {
ForEach(store.fetchedItems) { project in
// do something
}
}
.onAppear(perform: {
// store.fetchAndWait()
Task {
await store.fetch()
}
})
}
// stores permanently to disk
// triggers UI re-render
private func addProject() {
let project = Project(name: "Project " + UUID().uuidString)
try! store.append(project)
// See wiki/useful-api for additional functionality.
}
}