Ios 使用Swift上的CoreData进行获取请求查询
抱歉,伙计们,如果已经有一个线程关于它,但一直坚持了一段时间 我对CoreData有点陌生(只知道如何持久化和只获取项目),我正在尝试在我的应用程序中执行一个小查询,它将只加载isDone属性为“True”的项目Ios 使用Swift上的CoreData进行获取请求查询,ios,swift,core-data,Ios,Swift,Core Data,抱歉,伙计们,如果已经有一个线程关于它,但一直坚持了一段时间 我对CoreData有点陌生(只知道如何持久化和只获取项目),我正在尝试在我的应用程序中执行一个小查询,它将只加载isDone属性为“True”的项目 问题是我不知道如何使用NSFetchRequest和NSPredicate,所以我有点卡住了,希望你们能帮我一些提示你们可以使用其中的一个 NSPredicate(format: "isDone == %@", NSNumber(value: true)) NSPr
问题是我不知道如何使用NSFetchRequest和NSPredicate,所以我有点卡住了,希望你们能帮我一些提示你们可以使用其中的一个
NSPredicate(format: "isDone == %@", NSNumber(value: true))
NSPredicate(format: "isDone = %d", true)
你可以用其中一个
NSPredicate(format: "isDone == %@", NSNumber(value: true))
NSPredicate(format: "isDone = %d", true)
您可以这样编写查询
static func getDoneTasks()->NSFetchRequest{
让请求:NSFetchRequest=Task.fetchRequest()作为!NSFetchRequest
让sortDescriptor=NSSortDescriptor(键:“createdAt”,升序:false)
request.sortDescriptors=[sortDescriptor]
让isDone=true
request.predicate=NSPredicate(格式:“isDone==%@”,isDone)
退货申请
}
然后你就可以用:
@FetchRequest(FetchRequest:Task.getDoneTasks())var doneTasks:FetchedResults
您还可以向函数中添加参数等,并在FetchRequest
我可以推荐教程来理解coredata的核心概念,您可以编写如下查询
static func getDoneTasks()->NSFetchRequest{
让请求:NSFetchRequest=Task.fetchRequest()作为!NSFetchRequest
让sortDescriptor=NSSortDescriptor(键:“createdAt”,升序:false)
request.sortDescriptors=[sortDescriptor]
让isDone=true
request.predicate=NSPredicate(格式:“isDone==%@”,isDone)
退货申请
}
然后你就可以用:
@FetchRequest(FetchRequest:Task.getDoneTasks())var doneTasks:FetchedResults
您还可以向函数中添加参数等,并在FetchRequest
我可以推荐教程来理解coredata的核心概念!我解决了它,我将它拆分为两个函数,如下所示:非常感谢您的帮助 伙计们!我解决了它,我将它拆分为两个函数,如下所示:非常感谢您的帮助!你的意思是在我的方法中使用它?你的意思是在我的方法中使用它?出于某种原因,在我实现该方法后,它会说“不明确地使用'fetchRequest()”:|据我所知,btw@fetchRequest与Swiftui一起工作出于某种原因,它会说“不明确地使用'fetchRequest()”“一旦我实现了这个方法:| btw@FetchRequest据我所知可以与SwiftUI一起工作
func loadTasks() {
let request: NSFetchRequest<Task> = Task.fetchRequest()
request.predicate = NSPredicate(format: "isDone == %@", NSNumber(value: false))
request.sortDescriptors = [NSSortDescriptor(key: "isDone", ascending: false)]
do{
tasksArray = try! context.fetch(request)
} catch {
print("There was an error with loading items \(error)")
}
tableView.reloadData()
}
func loadDoneTasksFrom() {
let request:NSFetchRequest<Task> = Task.fetchRequest()
request.predicate = NSPredicate(format: "isDone == %@", NSNumber(value: true))
request.sortDescriptors = [NSSortDescriptor(key: "isDone", ascending: false)]
do{
tasksArray = try context.fetch(request)
} catch {
print("Error fetching data from context\(error)")
}
tableView.reloadData()
}