2011-05-30 11 views
27

He escuchado una serie de preguntas similares para otros idiomas, pero estoy buscando un escenario específico.Objective-C obtiene una propiedad de clase de la cadena

Mi aplicación tiene un modelo de Datos centrales llamado "Grabar", que tiene varias columnas/propiedades como "fecha, columna1 y columna2". Para mantener la programación limpia, así puedo adaptar mi aplicación a múltiples escenarios, los campos de entrada se asignan a una propiedad Core Data dentro de un plist (por ejemplo, tengo una variable de cadena llamada "dataToGet" con un valor de 'column1'.

¿Cómo puedo recuperar la propiedad "column1" de la clase de registro mediante el uso de la variable dataToGet?

+1

Probablemente usando KVC. No entendí tu pregunta exactamente. ¿Desea recuperar una propiedad cuyo nombre puede ser ingresado por el usuario? – Eimantas

Respuesta

78

el mecanismo Key Value Coding le permite interactuar con las propiedades de una clase utilizando representaciones de cadena de los nombres de las propiedades. Así, por ejemplo, si su clase Record tiene una propiedad llamada column1, puede acceder a esa propiedad de la siguiente manera:

NSString* dataToGet = @"column1"; 
id value = [myRecord valueForKey:dataToGet]; 

Puede adaptar ese principio a sus necesidades específicas.

+1

Gracias, Matt, eso no solo resuelve mi problema inmediato, sino que también me ayudará con situaciones futuras. – MechEngineer

Cuestiones relacionadas