Atributos URI escritos en CoreData: cómo consultar con NSPredicate
Tengo una entidad CoreData que almacena un atributo llamado “imageUrl” de tipo “URI”. Se utiliza para almacenar URL (como en Swift URL / NSURL) para, por ejemplo, renderizar imágenes remotas.
¿Cómo consultaría la representación de cadena de un atributo de tipo URI?
Ejemplo: Me gustaría obtener todos los objetos que coincidan con “http://mydomain.jpg” o URL (cadena: “http://mydomain.jpg”) para ser más precisos.
Para los atributos de tipo “String”, esto sería suficiente:
NSPredicate (formato: “myStringAttribute LIKE%@”, “http://mydomain.jpg”)
¿Funcionaría lo siguiente para los atributos de tipo URI?
NSPredicate (formato: “imageUrl LIKE%@”, URL (cadena: “http://mydomain.jpg”))
davy.ai
No, el formato de predicado anterior no funcionaría para atributos de tipo URI. En cambio, tendrías que convertir la URL a una representación de cadena y compararla con el atributo almacenado como una cadena. Aquí está un ejemplo de formato de predicado que debería funcionar:
NSPredicate(format: "imageUrl.absoluteString LIKE %@", "http://mydomain.jpg")
Este predicado coincidiría con todos los objetos donde la representación de cadena del atributo
imageUrl
coincide con la cadena de URL dada.