Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c 使用';变量';vs'_变量';?_Objective C_Ios - Fatal编程技术网

Objective c 使用';变量';vs'_变量';?

Objective c 使用';变量';vs'_变量';?,objective-c,ios,Objective C,Ios,可能重复: 我目前正在学习Objective-C,我正在学习一个使用变量的教程(至少对我来说!) 基本上,类变量是这样声明的: @interface .. { UITextField *_titleField; UIImageView *_imageView; } @property (retain) IBOutlet UITextField *titleField; @property (retain)

可能重复:

我目前正在学习Objective-C,我正在学习一个使用变量的教程(至少对我来说!)

基本上,类变量是这样声明的:

         @interface .. { 
            UITextField *_titleField;
            UIImageView *_imageView;
         }

@property (retain) IBOutlet UITextField *titleField;
@property (retain) IBOutlet UIImageView *imageView;
然后合成如下:

@synthesize titleField = _titleField;
@synthesize imageView = _imageView;

那么基本上,这是为了什么

titleField是合成属性,\u titleField是它的背景字段


可能会帮助您更好地理解它

属性只是一对方法的标记—“foo”和“setFoo”(除非属性是只读的,在这种情况下,只有“foo”会被合成)。一个变量(那些是实例,不是类变量,顺便说一句)是实际的内存存储。属性可以与内存存储相关联,@synthesis就是这样做的,但不必这样做。关键是,属性和实例变量通常一起使用,但又是不同的。

人们通常使用
.
字符作为实例变量的标记(在其他语言中,也称为“字段”或“成员”等)。有些人在变量名后加下划线,有些人在变量名前加下划线,有些人根本不使用下划线,有些人使用不同的前缀。其思想是,它可以帮助您一目了然地区分哪些是实例变量,哪些不是


当然,如果您决定以特定的方式命名实例变量,但仍然希望属性具有“正常外观”名称,则需要将“正常外观”名称映射到“实例变量”名称。

您好,谢谢您的回复。你能解释一下支持字段的用途吗?你知道其他编程语言吗?