Ios 使用Swift上的CoreData进行获取请求查询

Ios 使用Swift上的CoreData进行获取请求查询,ios,swift,core-data,Ios,Swift,Core Data,抱歉,伙计们,如果已经有一个线程关于它,但一直坚持了一段时间 我对CoreData有点陌生(只知道如何持久化和只获取项目),我正在尝试在我的应用程序中执行一个小查询,它将只加载isDone属性为“True”的项目 问题是我不知道如何使用NSFetchRequest和NSPredicate,所以我有点卡住了,希望你们能帮我一些提示你们可以使用其中的一个 NSPredicate(format: "isDone == %@", NSNumber(value: true)) NSPr

抱歉,伙计们,如果已经有一个线程关于它,但一直坚持了一段时间

我对CoreData有点陌生(只知道如何持久化和只获取项目),我正在尝试在我的应用程序中执行一个小查询,它将只加载isDone属性为“True”的项目


问题是我不知道如何使用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()
        
    }