¿Cuál es la diferencia entre PropertyName y _PropertyName en Objective-C?

En resumen, cuando declara variables con @property y @synthesize, el compilador escribirá funciones para que obtenga y establezca las variables y también cree un _variablename. Entonces, cuando haces myController.personName estás usando una función, pero cuando usas _personName estás configurando la variable directamente.

En algunos casos, no hay diferencia, excepto cuando utiliza la función para establecer una variable, como myController.personName como un mal ejemplo, está enviando un mensaje a la cadena de respuesta, por lo que si tiene una notificación o un reloj (como vinculante) en esa variable, se activará, pero si configura la variable directamente como _personName = @ “Joseph”; no activará la cadena de respuesta, y nadie sabrá que realizó el cambio. Esta diferencia es crucial al igual que Core Data y con enlaces.

Entonces para terminar esta respuesta,

personName = @ “some name” activará esta función
– (vacío) nombre: (NSString *) variable {
_name = variable;
}

pero

_name = @ “algún nombre”;
Solo establece la variable como

int i;
i = 10;

No ves esa función, pero está ahí cuando se compila la aplicación.