Tiene un conjunto precioso de respuestas centradas en cambiar un SÍ a un NO o viceversa, pero no responde que tocó lo que podría parecer un problema arquitectónico en el código.
Bueno, algunas respuestas. Estoy ciego.
Es decir, que tienen la siguiente:
objectWithLongishName.memberWithLongishName.submember.myBOOL =
!(objectWithLongishName.memberWithLongishName.submember.myBOOL);
que huele a una posible violación de encapsulación. En particular (y suponiendo que se trata de una capa de modelo), significa que la conectividad del subgrupo de objetos se expone abiertamente, se aplana, de manera efectiva, el punto de entrada de esa ruta; cualquiera que sea objectWithLongishName
, ahora debe tener un conocimiento más bien íntimo de las entrañas de los objetos a lo largo del resto del camino.
Normalmente, no se profundiza en la capa de modelo a lo largo de las rutas clave para editar el estado fuera de la capa de enlaces de cacao (e incluso eso es un poco frágil).
A veces, estos caminos largos tienen sentido. En tal caso, dejaría la forma über-verbose que tiene arriba como una indicación visual de que la encapsulación se destruye a propósito.
Simplemente curioso, ¿puedes multiplicar un 'bool' por un numérico en Objective-C? ¿Podría hacer algo así como 'objectWithLongishName.memberWithLongishName.submember.myBOOL * = - 1;'? Parece que sería una forma muy * muy * mala de hacerlo, pero ahora me pregunto si funcionaría ... – FrustratedWithFormsDesigner
@frust: Aparte de otras cuestiones, ¿cómo funcionaría eso aritméticamente? '0 * -1 = 0'. –
@Georg Fritzsche: jajaja! Ok, buen punto. Pensé que había visto ese truco * algún * donde, pero no recuerdo dónde (aunque sé que no era Objective-C). – FrustratedWithFormsDesigner