Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:_弱vs(弱)_Ios_Objective C_Automatic Ref Counting - Fatal编程技术网

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