1. 程式人生 > >OC開發系列-@property和@synthesize

OC開發系列-@property和@synthesize

AS ret per get方法 蘋果 return 結構 urn AC

property和synthesize關鍵字

創建一個Person類。

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int _age;
    int _height;
}

- (void)setAge:(int)age;
- (int)age;
@end
 
#import "Person.h"
@implementation Person

- (void)setAge:(int)age
{
    _age = age;
}
- (int)age
{
    return _age;
}
@end

開發中考慮封裝性將成員屬性通過提供setter與getter結構供外界訪問。但是這些setter跟getter代碼沒有任何技術含量。於是蘋果提供關鍵字propertysynthesize關鍵字利用編譯器特性將我們自動生成setter跟getter方法。

@property int age;
// - (void)setAge:(int)age;
// - (int)age;

@synthesize age;
/*
- (void)setAge:(int)age
{

}
- (int)age
{

}
*/

@synthesize age雖然幫我們實現了set跟get方法的實現,並未指定將外界傳遞的值對哪個成員屬性進行賦值。如上Person類需要給成員_age復制。

@synthesize age = _age;

OC開發系列-@property和@synthesize