这两行代码之间是否存在差异?
__weak IBOutlet UITextField *usernameField;
@property (weak) IBOutlet UITextField *usernameField;
如果在.h的接口部分或.m文件中声明其中任何一个,该怎么办?
答案 0 :(得分:6)
是。第一个示例声明了一个名为usernameField
的弱实例变量,但第二个示例声明了一个名为usernameField
的弱属性,以及一个名为_usernameField
的实例变量,该属性可由该属性访问。
如果在.m文件的@interface部分声明它,那么只能在该.m文件中访问它(除非你搞乱了Objective-C运行时)。
答案 1 :(得分:2)
差异不在于weak
引用,而在于第一个是instance
,第二个是@property
。
__weak
和(weak)
是相同的,但第二个用作属性的属性。