Compruebe si el atributo de nombre ya existe en CoreData

Tengo una entidad llamada BankInfo , y uno de sus parameters es el name que es una cadena. Solo me pregunto, ¿hay alguna manera en CoreData para verificar si un name ya existe en BankInfo sin tener que recuperar cada object de BankInfo y revisarlos individualmente? ¿Cuál sería la forma más eficiente de lograr esto?

Puede usar una request de búsqueda con un pnetworkingicado para encontrar objects que coincidan con ciertos attributes. Si solo le interesa la existencia de un object con la key dada, use countForFetchRequest lugar de search los objects y limite el set de resultados a un object:

 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"BankInfo"]; [request setPnetworkingicate:[NSPnetworkingicate pnetworkingicateWithFormat:@"name = %@", theName]]; [request setFetchLimit:1]; NSUInteger count = [context countForFetchRequest:request error:&error]; if (count == NSNotFound) // some error occurnetworking else if (count == 0) // no matching object else // at least one matching object exists 

Para otros, que como yo, terminamos aquí buscando la solución Swift 3 , aquí está:

 let request = NSFetchRequest<NSFetchRequestResult>(entityName: "BankInfo") let pnetworkingicate = NSPnetworkingicate(format: "name == %@", theName) request.pnetworkingicate = pnetworkingicate request.fetchLimit = 1 do{ let count = try managedContext.count(for: request) if(count == 0){ // no matching object } else{ // at least one matching object exists } } catch let error as NSError { print("Could not fetch \(error), \(error.userInfo)") }