Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 @property的使用_Ios_Objective C - Fatal编程技术网

Ios @property的使用

Ios @property的使用,ios,objective-c,Ios,Objective C,为什么这个代码可以 @interface AddViewController : UIViewController <UIPickerViewDelegate> { IBOutlet UILabel *category; IBOutlet UIPickerView *categoryPicker; } @end @interface AddViewController:UIViewController { IBUILabel*类别; IBUIPickerView*类别识别器

为什么这个代码可以

@interface AddViewController : UIViewController <UIPickerViewDelegate>
{


IBOutlet UILabel *category;
IBOutlet UIPickerView *categoryPicker;


}
@end
@interface AddViewController:UIViewController
{
IBUILabel*类别;
IBUIPickerView*类别识别器;
}
@结束
但是这个代码不是

@interface AddViewController : UIViewController <UIPickerViewDelegate>



IBOutlet UILabel *category;
IBOutlet UIPickerView *categoryPicker;



@end
@interface AddViewController:UIViewController
IBUILabel*类别;
IBUIPickerView*类别识别器;
@结束

另外,我正在查找一个关于如何使用UIPickerView的视频,他没有为IBOutlet制作属性,而是制作了Outlet。这显然与这些花括号的存在有一定关系。

类别和
类别识别器是实例变量,而不是属性。您可以通过它们的名称直接引用它们,例如
category
,或者使用
self->category

实例变量用大括号声明,而属性用@property声明

实例变量没有setter和getter方法,而属性有。

您需要将“IBOutlet UILabel*category;”更改为“@property(非原子,强)IBOutlet UILabel*category;”,与“IBOutlet UIPickerView*categorypecker;”相同


在括号{}中,category和categoryPicker是实例变量,但是如果删除“{}”,则需要使用“property”,以便它们以相同的方式工作

术语“class field”没有任何意义。这些确实存在于实例中,因此它们被称为“实例变量”或“ivar”为什么字段?你对html表单编码做了很多工作吗?因为第二个代码是语法错误——这就是为什么。