Conozco el nombre de la cadena de una propiedad de un objeto. ¿Cómo podría obtener y configurar esa propiedad usando la cadena?Acceda a la propiedad Objective-C dinámicamente utilizando el nombre de la propiedad
Respuesta
Mientras @weichsel es correcta, hay una manera mejor.
Uso:
[anObject valueForKey: @"propertyName"];
y
[anObject setValue:value forKey:@"propertyName"];
Obviamente, @"propertyName"
puede ser un NSString
que se compone de forma dinámica en tiempo de ejecución.
Esta técnica se llama Key Value Coding y es fundamental para Cocoa.
Por qué esto es mejor es porque -valueForKey
hará lo que sea necesario para "encajonar" cualquier tipo que la propiedad regrese a un objeto. Por lo tanto, si la propiedad es del tipo int
, devolverá una instancia NSNumber
que contiene el int.
Esto es mucho más fácil de tratar - performSelector
se única trabajo para tipos que suceden para encajar en el valor de un puntero de memoria.
Tenga en cuenta que también hay -setValue:forKey:
.
@synthesize propertyName
automatiza la generación de métodos getter y setter.
El compilador genera
- (id)propertyName;
- (void)setPropertyName;
Si usted tiene un selector como NSString, puede utilizar performSelector:NSSelectorFromString
.
ej .:
[object performSelector:NSSelectorFromString(@"propertyName") ...]
Deberá usar 'performSelector: withObject:' para establecer la propiedad. –
- 1. Establecer valor de la propiedad nombre utilizando la propiedad
- 2. Acceda dinámicamente a una propiedad en un componente Delphi
- 3. Acceda a la propiedad indefinida en JavaScript
- 4. Nombre dinámicamente una propiedad JSON
- 5. Convertir a nombre de la propiedad objeto
- 6. cómo especificar la propiedad de nombre utilizando nocaut js
- 7. .Net nombre de la propiedad
- 8. Razones para cambiar el nombre de la propiedad a _property
- 9. ¿A la propiedad, o no a la propiedad?
- 10. cómo acceder a la propiedad objeto utilizando la variable
- 11. WPF enlaza la propiedad de usercontrol a la propiedad principal
- 12. Obtener valor de propiedad dinámicamente
- 13. propiedad del nombre de la máquina ant
- 14. Acceso a la propiedad de Conexión utilizando DbContext
- 15. Obtener el nombre de la propiedad dentro del setter
- 16. Obtener propiedad dinámica de la configuración
- 17. Cómo crear nueva propiedad dinámicamente
- 18. Obtener el nombre de propiedad de clase
- 19. ¿Prefijo de subrayado en el nombre de la propiedad?
- 20. propiedad de acceso utilizando su nombre en vb.net
- 21. C# - código para ordenar por una propiedad usando el nombre de la propiedad como una cadena
- 22. JSP EL: creación dinámica del nombre de propiedad
- 23. Qué hacer cuando el nombre de la propiedad coincide con el nombre de la clase
- 24. propiedad del nombre NSCache
- 25. Enlace a la propiedad estática
- 26. .NET: Obtener nombre de la propiedad en el atributo
- 27. Obtener cadena de nombre de la propiedad de la expresión
- 28. Cómo obtener el valor de la propiedad Bean cuando el nombre de la propiedad es una variable dinámica
- 29. PHP Clase Nombre de propiedad
- 30. de colon PHP en nombre de la propiedad
¡Muy útil! No lo sabía –