Sai*_*esh 6 core-data ios-simulator swiftui xcode12
在 XCode 12 中,如果我创建一个新的 SwiftUI 应用程序并选中“使用核心数据”按钮,则生成的应用程序(没有更改)会在模拟器(以及设备上)显示一个空白屏幕。在预览中,它按预期显示示例时间戳。为什么模拟器/设备没有显示示例时间戳?
小智 5
如果您想在模拟器中查看模板中的示例输入(带有时间戳的 10 行),则需要在 App.swift 中进行更改:
让persistenceController = PersistenceController.shared
到
让persistenceController = PersistenceController.preview
如果没有这个变化,Apple 提供的模板仅在 ContentView 的画布预览中显示示例输入。Persistence.swift 文件有两个静态变量:shared 和 preview。.shared 只是启动一个(空)PersistenceController,而 .preview 静态变量启动一个 PersistenceController,将带有当前时间戳的十个项目添加到 viewContext 并保存它。
SwiftUI 中的工具栏项默认代码已损坏:在模板代码中使用此代码。将列表嵌入到 NavigationView 中,然后将按钮嵌入 HStack 中。
var body: some View {
NavigationView { //added
List {
ForEach(items) { item in
Text("Item at \(item.timestamp!, formatter: itemFormatter)")
}
.onDelete(perform: deleteItems)
} .toolbar {
#if os(iOS)
HStack { //added
EditButton()
Button(action: addItem) {
Label("Add Item", systemImage: "plus")
}
}//added
#endif
}
}//added NavView embed
}
Run Code Online (Sandbox Code Playgroud)
同样要使预览工作,您需要将 PersistenceController 更改为shared而不是preview。
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView().environment(\.managedObjectContext, PersistenceController.shared.container.viewContext)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
982 次 |
| 最近记录: |