iOS:_弱vs(弱)
这两行代码之间有区别吗iOS:_弱vs(弱),ios,objective-c,automatic-ref-counting,Ios,Objective C,Automatic Ref Counting,这两行代码之间有区别吗 __weak IBOutlet UITextField *usernameField; @property (weak) IBOutlet UITextField *usernameField; 如果您在.h或.m文件的接口部分声明了其中一个呢 区别不在于弱引用,而在于第一个是实例,第二个是@属性 \uu弱和(弱)是同一回事,但第二个用作属性的属性。是。第一个示例声明了一个名为usernameField的弱实例变量,但第二个示例声明了一个名为usernameField
__weak IBOutlet UITextField *usernameField;
@property (weak) IBOutlet UITextField *usernameField;
如果您在.h或.m文件的接口部分声明了其中一个呢 区别不在于
弱
引用,而在于第一个是实例
,第二个是@属性
\uu弱
和(弱)
是同一回事,但第二个用作属性的属性。是。第一个示例声明了一个名为usernameField
的弱实例变量,但第二个示例声明了一个名为usernameField
的弱属性,以及一个名为\u usernameField
的实例变量,该属性可以访问该变量
如果您在.m文件的@interface部分声明它,那么它只能在该.m文件中访问(除非您弄乱了Objective-C运行时)。您会说Objective C中的属性类似于Java中的静态类变量吗?这是没有意义的,Java中的静态字段对任何实例都没有特殊意义,因此不是一个实例变量。你是说objective c中的实例变量对该类的任何实例都不是特定的吗?对不起,我在键入之前无意中发布了一条注释。Objective-C中的实例变量与实例相关联,就像Java中一样。属性是一个实例变量,与(通常自动生成的)访问器方法配对。Objective-C没有静态类变量,但是如果您想要静态类变量,请参阅。明白了,我在尝试为类创建私有实例变量时遇到了这个问题。特别是,表示UI对象的变量,如UITextFields等,认为没有理由将它们放在public.h文件中。。。。NIB加载程序也无法使用弱实例变量。这是一个完全动态的运行时,其中的接口作为数据加载,而不是一个来回写一些隐藏代码的黑客。因此,没有必要将一个声明为
IBOutlet
。