Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data SwiftUI中的核心数据_Core Data_Swiftui - Fatal编程技术网

Core data SwiftUI中的核心数据

Core data SwiftUI中的核心数据,core-data,swiftui,Core Data,Swiftui,试图在SwiftUI中实现核心数据,我遇到了麻烦。 在许多教程之后,我编写了以下项目,大概完全按照说明编写,但应用程序无法构建 我还停留在一个非常早期的阶段,所以我希望有人能在这里帮助我 我在XCDataModel中创建了两个实体,每个实体都有一个名为“airportName”的字符串属性 我只是尝试显示其中一个实体的列表: 导入快捷界面 导入CoreData 结构ContentView:View{ @环境(\.managedObjectContext)变量managedObjectCont

试图在SwiftUI中实现核心数据,我遇到了麻烦。 在许多教程之后,我编写了以下项目,大概完全按照说明编写,但应用程序无法构建

我还停留在一个非常早期的阶段,所以我希望有人能在这里帮助我

  • 我在XCDataModel中创建了两个实体,每个实体都有一个名为“airportName”的字符串属性
  • 我只是尝试显示其中一个实体的列表:
导入快捷界面
导入CoreData
结构ContentView:View{
@环境(\.managedObjectContext)变量managedObjectContext
@FetchRequest(实体:Takeoffs.entity(),SortDescriptor:[NSSortDescriptor(keyPath:\Takeoffs.eventDate,升序:false)])var fetchedTakeoffs:FetchedResults
var body:一些观点{
名单{
ForEach(fetchedTakeoffs,id:\.self){item in
Text(item.airportName)//这是我得到错误的地方
}
}
}
}
结构内容视图\u预览:PreviewProvider{
静态var预览:一些视图{
让上下文=(UIApplication.shared.delegate为!AppDelegate)。persistentContainer.viewContext
返回ContentView().environment(\.managedObjectContext,context)
}
}
但是Xcode告诉我“类型为'NSManagedObject'的值没有成员'airportName'” 好像我的XCDatamodel没有连接到应用程序

我通过选中SwiftUI、Use CoreData复选框创建了该项目

整个代码可在此处找到:


谢谢你的指点。

我能够构建它。但不确定它是否会像您预期的那样运行。请通过。我认为
起飞
项目的属性是可选的,因为您遇到了错误

List {
    ForEach (fetchedTakeoffs, id: \.self) { item  in
       Text(item.airportName ?? "")
    }
}

谢谢Joy,“可选”角度是正确的。我在实体的所有属性中取消选择了可选项,但我声明为UUID的identNumber除外。这会有问题吗?UUID不是自动生成的吗?我在列表中执行ForEach循环时可能需要它们…@Esowes。UUID背后的思想是,它是一个长字符串,对于所有实际用途来说都是唯一的。假设在youtube上,两个视频的名字可能相同,或者作者或音乐剧可能相同。等如果要唯一地标识每个对象,可以使用此选项。默认情况下不生成uuid。使用此选项是获取和存储数据的更好实践。如果您接受答案,我将非常高兴。它可以推动我。只有我的回答对你有帮助。
List {
    ForEach (fetchedTakeoffs, id: \.self) { item  in
       Text(item.airportName ?? "")
    }
}