首先需要聲明一下實例變量和屬性的區別。
實例變量:
/// 接口文件
#import
- (int) a; // 實例變量
- (int) b;
- (void) fun1;
...
@end
/// 實現文件
#import "XXX.h"
@implementation XXX
{
int a; // 實例變量
int b;
}
- (void) fun1
{
...
}
...
@end
屬性:
@interface XXX:NSObject
@property int a, b; // @property指令
- (void) a;
...
@end
需要注意的地方:
1、如果聲明了屬性,那麼就不需要在implementation中再次聲明。
2、@synthesize
經常在實現文件中出現@synthsize a,b;這樣就實現了兩個個取值方法a,b;兩個設置方法seta,setb;
但其實這行也可以不用,編譯器也會為你自動生成setter和getter,不過編譯器生成的屬性名會在第一個字符自動加一個下劃線。如:_a,_b;
產生自動存取方法,讓編譯器完成這件事是非常值得的。