Objetivo C Equivalente a las “variables variables” de PHP

En PHP y en JavaScript puede usar dinámicamente una variable usando otra variable como parte de su nombre. No quiero usar una matriz como parte de la solución. ¿Se puede lograr esto en el objective C? Me gustaría hacer algo como esto:

for (int i=1; i<6; i++) { if([appRecord.answer(i) length] != 0){ self.textView.answer(i)ViewSingle.text = appRecord.answer(i); } } 

Respuesta corta: No.

Respuesta larga: tipo de.

  1. Puede usar una matriz, almacenar sus variables allí e indexar en ella.
  2. Al igual que el n. ° 1, si sus objetos son realmente elementos de la interfaz de usuario y no desea un conjunto completo de IBOutlets , utilice un IBOutletCollection .
  3. Puede usar un diccionario, almacenar sus variables como valores y buscarlas por clave.
  4. Puede declarar todas sus variables como @property y luego usar [self valueForKey:] para buscarlas por su nombre.
  5. Puede construir el nombre del ivar como una cadena, y luego usar algo como object_getInstanceVariable() para recuperar su valor directamente (esto es similar al # 3, excepto que no tiene que declararlo como @property ). Esto es excesivamente complicado y generalmente es un martillo mucho más grande de lo que realmente necesitará.
  6. Si está tratando con vistas, puede asignar a cada vista una etiqueta única y luego recuperarla a través de [superview viewWithTag:aTag] . No recomiendo usar este enfoque.

EDITAR: Tenga en cuenta que esto solo funciona con variables de instancia. Esto no funciona con variables globales / estáticas.

No. Pero puede darle una etiqueta a la vista y usar -viewWithTag: