Tengo una entidad en Core Data que tiene un atributo que debe ser único. No hay forma de configurar esto en la interfaz visual. Supongo que necesito crear una clase personalizada que herede de NSManagedObject y luego escribir mi propio método de validación.¿Cómo realizo una validación personalizada (por singularidad) en Datos centrales?
Creé satisfactoriamente la clase personalizada seleccionando las entidades en el editor visual y seleccionando Archivo -> Nuevo -> Nuevo archivo -> subclase NSManagedObject. Lo uso para agregar marcas de tiempo de creación, así sé que funciona.
¿Pero ahora qué? ¿Qué métodos necesito?
El NSManagedObject reference guide me dice que "implemente los métodos de la forma de validar: error:" pero no proporciona un ejemplo.
Preguntas similares here y here, pero necesito un poco más de ayuda.
Un ejemplo completo sería increíble, pero cualquier ayuda es muy apreciada.
¿Intentó alguna de las soluciones en la respuesta que le dieron? Básicamente, verifique la exclusividad antes de llamar a guardar. El código en el segundo ejemplo debería ser todo lo que necesites. – sosborn
@sosborn Los ejemplos solo muestran cómo funciona la validación en sí misma (iterar sobre todos los registros anteriores que buscan el mismo valor), pero no dónde colocarla. –
Simplemente haga un método que devuelva un BOOL. Si es único, devuelva SÍ, de lo contrario, devuelva NO. Llama a ese método Si devuelve SÍ, guarde, si devuelve no, no guarde. – sosborn