【发布时间】:2022-06-22 00:08:49
【问题描述】:
我有一个简单的 Core Data macOS 应用,其数据模型如下:
Entity:
Data
Attributes:
text String
starred Boolean
date Date
我正在尝试从我创建的自定义菜单中访问数据,对其进行迭代并(将来)将其保存到磁盘。
我一直在尝试将代码直接添加到创建为的菜单项:
@main
struct My_DataApp: App {
let persistenceController = PersistenceController.shared
var body: some Scene {
WindowGroup {
ContentView()
.environment(\.managedObjectContext, persistenceController.container.viewContext)
.frame(minWidth: 560, maxWidth: .infinity,
minHeight: 300, maxHeight: .infinity)
.onAppear {
NSWindow.allowsAutomaticWindowTabbing = false
}
}
.windowToolbarStyle(UnifiedWindowToolbarStyle(showsTitle: false))
.commands{
CommandGroup(after: CommandGroupPlacement.newItem) {
Button("Export Data") {
@FetchRequest(entity: Data.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Data.date, ascending: false)], animation: .default)
var DataItems: FetchedResults<Data>
for data in DataItems {
print("\(String(describing: data.text))")
}
}
}
}
}
}
Xcode 当然在抱怨:
我理解错误,但我不知道如何考虑从菜单访问数据。
我在这里看到了一些关于相同错误的帖子,我尝试将代码添加到 .onAppear 部分,但那里发生了同样的错误。
感谢您的帮助。
【问题讨论】:
-
包装器应该只在结构级别,也许 NSFetchRequest 会为你工作。