¿Qué convenciones siguen las personas aquí para nombrar variables de instancia y argumentos de método, particularmente cuando los argumentos de método se usan para establecer ivars (variables de instancia)?variable de instancia/método asignación de argumentos en Objectivo C
En C++ solía usar el prefijo m_
para ivars mucho. En C#, seguí la convención de desambiguación puramente mediante el uso de this.
para ivars. Desde entonces adopté el equivalente en C++ también (this->
).
En Objective C He intentado algunas cosas pero ninguna me ha parecido realmente satisfactoria.
A menos que alguien sugiera algo realmente agradable, me resigno al hecho de que tendré que comprometerme (pero, por favor, ¡no me hagas usar el prefijo the
para args!), Así que estoy interesado en saber qué la mayoría dice, especialmente de aquellos que han estado usando ObjC por un tiempo.
he hecho un poco de diligencia debida antes de publicar esto y un par de buenos recursos que encontré donde:
- This style guide (menciona brevemente mi tema)
- This thread (una gran cantidad de ex C++ codificadores de allí)
Me dan algunas ideas, pero todavía estoy ansioso por escuchar lo que otros están haciendo.
[editar] Solo para aclarar: Es específicamente cómo distinguir Ivars de argumentos del método que estoy buscando - ya sea a través de prefijos o alguna otra técnica.
[editar 2] Gracias por todas las respuestas y puntos de discusión. No estoy cerrando esto, pero solo diré que, como indiqué en mis comentarios a la respuesta aceptada, me he ido con la convención de anteponer init args con the
(y setter args con new
, lo cual estaba haciendo de todos modos) . Este parece ser el mejor equilibrio de fuerzas, incluso si yo mismo no estoy interesado en la estética.
Gracias Barry. El problema con el uso de los adaptadores dentro de la implementación de la clase es que agregan una sobrecarga significativa, que puede ignorar en las aplicaciones de escritorio, pero en el iPhone pueden sumarse. Además, como dices, pueden tener efectos secundarios que no desees desde el impl ... – philsquared
... [cont]. Dicho esto, es principalmente en los métodos init que se produce el choque (en los mutadores usualmente uso newX o similar de todos modos). Como el consenso parece estar en el o como un prefijo para los argumentos, quizás pueda vivir con eso solo dentro de los métodos init. Eso mantiene a los ivars más limpios. – philsquared
Verificaría que el acceso a la propiedad frente al acceso directo a ivar es un golpe de rendimiento inaceptable. Aclaré anteriormente por qué tienes que acceder a ivar directamente en init/dealloc. De lo contrario, parece peligroso tener acceso directo al lado del acceso a la propiedad, ya que enturbia la semántica del estado ivar. –