Check if name attribute already exists in CoreData

Viewed 9376

I have an entity called BankInfo, and one of its parameters is name which is a string. I'm just wondering, is there a way in CoreData to check and see if a name already exists in BankInfo without having to retrieve every BankInfo object and cycle through them individually and check? What would be the most efficient way to accomplish this?

3 Answers

For Swift 5 use the below code, it similar to one of the upvoted answers, the only difference being use context.count instead of managedContext.count

let request : NSFetchRequest<MachineTypeTolerance> = MachineTypeTolerance.fetchRequest()
let predicate = NSPredicate(format: "machineType = %@", type)
request.predicate = predicate
request.fetchLimit = 1
do{
    let count = try context.count(for: request)
    //instead of managedContext use context,
    // where let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

    if(count == 0){
        print("no matches")
    }
    else{
        print("match found")
    }
} catch let error as NSError {
    print("Could not fetch \(error), \(error.userInfo)")
}
Related