在swiftUI开发中,CoreDate可以很方便的处理数据持久化任务,直接在swiftUI页面中就可以编辑。 在使用coredate的地方应该有的代码:
初始化:
@Environment(\.managedObjectContext) private var viewContext
@FetchRequest(entity: HabitItem.entity(), sortDescriptors: [])
var HabitItems: FetchedResults<HabitItem>
@FetchRequest(sortDescriptors: [NSSortDescriptor(keyPath: \Item.timestamp, ascending: true)],animation: .default)
private var items: FetchedResults<Item>
这部分内容放到stuck中声明即可。注意与容器中的名称对应。
保存新内容:
private func addItem() {
withAnimation {
let newItem = Item(context: viewContext)
newItem.timestamp = Date()
do {
try viewContext.save()
} catch {
let nsError = error as NSError
fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
}
}
}
|