iOS:__weak vs(弱)

这两行代码有差别吗?

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

如果你在.h或者.m文件的接口部分声明了这些信息呢?

是。 第一个例子声明了一个叫做usernameField的弱实例variables,但是第二个例子声明了一个名为usernameField的弱属性和一个名为_usernameField的实例variables,该属性可以访问该variables。

如果在.m文件的@interface部分声明它,那么只能在该.m文件中访问它(除非混淆了Objective-C运行时)。

差异不在于weak引用,而只是第一个是instance ,第二个是@property

__weak(weak)是一样的,但是第二个被用作属性的属性。