了解ios和objective-c @property

时间:2014-07-10 06:14:19

标签: ios objective-c ios7 properties delegation

有什么区别:

@interface PhotoAppViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
{
    UIImageView * imageView;
    UIButton * choosePhotoBtn;
    UIButton * takePhotoBtn;
}

@property (nonatomic, retain) IBOutlet UIImageView * imageView;
@property (nonatomic, retain) IBOutlet UIButton * choosePhotoBtn;
@property (nonatomic, retain) IBOutlet UIButton * takePhotoBtn;

而且:

@interface PhotoAppViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate>

@property (nonatomic, retain) IBOutlet UIImageView * imageView;
@property (nonatomic, retain) IBOutlet UIButton * choosePhotoBtn;
@property (nonatomic, retain) IBOutlet UIButton * takePhotoBtn;

授权后花括号是什么意思?

2 个答案:

答案 0 :(得分:1)

“花括号”是定义instance variables(也称为ivars)的范围。属性是可以公开访问的变量(即通过其他类),而实例变量是私有的,只能在类的实现本身的范围内访问。

阅读thisthis,以便直观地了解属性和ivars之间的差异。

我强烈建议您阅读Apple关于Objective-C的文档,或者如果前者对您的品味有点过于技术性,请阅读相同主题的好书。

答案 1 :(得分:1)

来自http://rypress.com/tutorials/objective-c/properties.html

  

对象的属性允许其他对象检查或更改其状态。   但是,在精心设计的面向对象程序中,它是不可能的   直接访问对象的内部状态。相反,访问者   方法(getter和setter)用作抽象   与对象的基础数据交互。

Stackoverflow Answer