¿Cuáles son los errores más comunes que enfrentan los desarrolladores de iOS?

Solo algunos que se me ocurren:

– Una cosa que haría a menudo cuando estaba en mis primeros días de objetivo-c serían los ciclos de retención. Hacer que los objetos A y B se retengan entre sí. Esto fue mucho más fácil de suceder cuando no teníamos ARC, ya que tenía que ocuparse de la mayoría de retener y liberarse, pero incluso con ARC aún puede estropearlo.

– Hacer uso de NSNotificationCenter para observar una determinada notificación y olvidarse de eliminarla correctamente. Si tenía su objeto como observador de una notificación cuando se crea y se olvida de eliminarlo en dealloc, por ejemplo, cuando llega otra notificación de ese tipo y su objeto ya no existe, se bloqueará su aplicación.

Cuando se trata de la comunicación cliente-servidor usando JSON, termina con 2 problemas MUY comunes:
– Uno de ellos está tratando con valores nulos que en el objetivo-c se traducen a objetos NSNull, que no se evalúan como falsos en expresiones booleanas.
– Otro está enviando objectForKey: a un NSArray u objectAtIndex: a un NSDictionary. Esto puede ocurrir debido a varias razones, generalmente relacionadas con quien se encarga del servidor y el cliente que no acordó correctamente el protocolo correcto para la comunicación. La otra más problemática es que algunos lenguajes utilizados para el desarrollo de backend no distinguen las matrices de los diccionarios, por lo que cuando sucede que la respuesta a lo que solicitó está vacía, el analizador de ese lenguaje para JSON necesitará averiguar si ese objeto vacío está destinado a ser una matriz o un diccionario. Es casi seguro que usará uno de ellos, digamos matriz, y si su cliente esperaba un diccionario, probablemente enviará objectForKey: a una matriz.

Condiciones de carrera.