将这部分单独作为一个博文来专门书写。

创建一个App项目,选中CoreData

添加一个简单的数据结构

这里创建了一个Student,里面有两个属性,id: UUID, name: String

保存

Command+S

添加读取CoreData的变量

1
@FetchRequest(entity: Student.entity(), sortDescriptors: []) var students: FetchedResults<Student>

使用List来调取所有的Student

1
2
3
4
5
var body: some View {
List (students, id: \.id){ student in
Text(student.name ?? "unknown")
}
}

创建一个环境属性用来分配CoreData的属性

1
@Environment(\.managedObjectContext) var moc

创建一个添加数据的按钮

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Button(action: {
let firstNames = ["赵", "钱", "孙", "李", "周"]
let lastNames = ["翠花", "狗蛋", "狗剩", "伟"]

let chosenFirstName = firstNames.randomElement()!
let chosenLastName = lastNames.randomElement()!

let student = Student(context: self.moc)

student.id = UUID()
student.name = chosenFirstName + chosenLastName

try? self.moc.save()
}) {
Text("添加")
}

大功告成!

成功使用了CoreData完成了一个最简单用法