面试题答案
一键面试- 使用Core Data构建数据模型:
- 打开Xcode项目,在项目导航器中选择
.xcdatamodeld
文件(如果没有,可通过File
->New
->File...
,选择Core Data
下的Data Model
来创建)。 - 在数据模型编辑器中,点击
Add Entity
按钮创建一个新的实体,例如命名为TodoItem
。 - 为
TodoItem
实体添加属性:- 点击
Add Attribute
,添加一个名为title
,类型为String
的属性,用于存储事项标题。 - 再添加一个名为
isCompleted
,类型为Boolean
的属性,用于表示事项是否完成。
- 点击
- 打开Xcode项目,在项目导航器中选择
- 在SwiftUI视图中获取和显示数据:
- 首先,在SwiftUI视图中需要引入Core Data相关框架:
import CoreData
import SwiftUI
- 创建一个
NSFetchRequest
来获取TodoItem
数据:
let fetchRequest: NSFetchRequest<TodoItem> = TodoItem.fetchRequest()
fetchRequest.sortDescriptors = []
- 使用
@FetchRequest
属性包装器在SwiftUI视图中获取数据:
struct ContentView: View {
@FetchRequest(fetchRequest: fetchRequest) var todoItems: FetchedResults<TodoItem>
var body: some View {
List {
ForEach(todoItems, id: \.self) { item in
HStack {
Image(systemName: item.isCompleted ? "checkmark.circle.fill" : "circle")
Text(item.title ?? "No title")
}
}
}
}
}
这里通过@FetchRequest
自动监听数据变化,FetchedResults
包含了从Core Data获取的TodoItem
实例,通过ForEach
循环遍历并在List
中显示每个待办事项的标题和完成状态图标。