试图在SwiftUI中实现核心数据,我遇到了麻烦。 经过许多教程,我写了下面的项目,大概是按照指示进行的,但是该应用程序无法构建。
我还处于初期阶段,所以希望有人可以在这里提供帮助。
import SwiftUI
import CoreData
struct ContentView: View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(entity: Takeoffs.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Takeoffs.eventDate, ascending: false)]) var fetchedTakeoffs: FetchedResults<Takeoffs>
var body: some View {
List {
ForEach (fetchedTakeoffs, id: \.self) { item in
Text(item.airportName) // THIS IS WHERE I GET THE ERROR
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
return ContentView().environment(\.managedObjectContext, context)
}
}
但是Xcode告诉我“类型'NSManagedObject'的值没有成员'airportName'” 就像我的XCDatamodel未连接到应用程序。
我通过选中SwiftUI,使用CoreData复选框创建了项目。
完整的代码可以在这里找到:
https://github.com/Esowes/RecentExp
感谢任何指针。
答案 0 :(得分:1)
我能够构建它。但是不确定它是否会按预期运行。请通过。我认为takeOff
项的属性是可选的,您会遇到错误。
List {
ForEach (fetchedTakeoffs, id: \.self) { item in
Text(item.airportName ?? "")
}
}