在函数 SwiftUI 中加载 CoreData,出现 NSFetchRequest 错误
Loading CoreData in function SwiftUI, with NSFetchRequest Error
import SwiftUI
import Foundation
import CoreData
//MARK: - Welcome View
struct fetchView: View {
//MARK: - View
var body: some View {
let testing = getFetch()
ForEach(testing) {test in
}
Text("Hello World")
}
//MARK: - Methods
func getFetch() -> NSFetchRequest<FeedList> {
let fr: NSFetchRequest<FeedList> = NSFetchRequest<FeedList>(entityName: "timestamp")
fr.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)]
fr.predicate = NSPredicate(format: "timestamp > %@", Calendar.current.startOfDay(for: Date()) as NSDate)
return fr
}
}
//MARK: - Preview
struct fetchView_Previews: PreviewProvider {
static var previews: some View {
fetchView()
}
}
在 ForEach(testing) 行中 (测试的 t 带有红色下划线) 我得到了错误
Cannot convert value of type 'NSFetchRequest' to expected
argument type 'Range'
如果有人知道如何解决这个问题,那么我可以通过列出我的 CoreData 中的数据。一个很有帮助的功能。
P.S。我知道如何做 @fetchRequest 但我正在尝试这样做所以它在 class 中工作,每天我都可以计算值并将它们放在一个数组中,而 @fetchRequest 只在结构中工作。
您正在return从该函数获取提取请求。您需要做的是 return 获取的结果(FeedList
类型的数组),方法是在托管对象上下文上调用 fetch 函数并传入您创建的 fetchRequest。
import SwiftUI
import Foundation
import CoreData
//MARK: - Welcome View
struct fetchView: View {
//MARK: - View
var body: some View {
let testing = getFetch()
ForEach(testing) {test in
}
Text("Hello World")
}
//MARK: - Methods
func getFetch() -> NSFetchRequest<FeedList> {
let fr: NSFetchRequest<FeedList> = NSFetchRequest<FeedList>(entityName: "timestamp")
fr.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)]
fr.predicate = NSPredicate(format: "timestamp > %@", Calendar.current.startOfDay(for: Date()) as NSDate)
return fr
}
}
//MARK: - Preview
struct fetchView_Previews: PreviewProvider {
static var previews: some View {
fetchView()
}
}
在 ForEach(testing) 行中 (测试的 t 带有红色下划线) 我得到了错误
Cannot convert value of type 'NSFetchRequest' to expected argument type 'Range'
如果有人知道如何解决这个问题,那么我可以通过列出我的 CoreData 中的数据。一个很有帮助的功能。
P.S。我知道如何做 @fetchRequest 但我正在尝试这样做所以它在 class 中工作,每天我都可以计算值并将它们放在一个数组中,而 @fetchRequest 只在结构中工作。
您正在return从该函数获取提取请求。您需要做的是 return 获取的结果(FeedList
类型的数组),方法是在托管对象上下文上调用 fetch 函数并传入您创建的 fetchRequest。