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表单编码做了很多工作吗?因为第二个代码是语法错误——这就是为什么。