iOS: __ débil vs (débil)

¿Hay diferencias entre estas dos líneas de código?

__weak IBOutlet UITextField *usernameField; @property (weak) IBOutlet UITextField *usernameField; 

¿Qué sucede si declara cualquiera de estos en la sección de interfaz de los files .h o .m?

Sí. El primer ejemplo declara una variable de instancia débil llamada usernameField , pero la segunda declara una propiedad débil llamada usernameField , y una variable de instancia llamada _usernameField que accede la propiedad.

Si lo declara en una sección @interface del file .m, solo se puede acceder a él en ese file .m (a less que se meta con el time de ejecución de Objective-C).

La diferencia no está en la reference weak sino solo en el hecho de que la primera es una instance y la segunda es una @property .

__weak y (weak) es lo mismo, pero el segundo se usa como atributo de properties.