一、@property与@synthesize基本规范用法
[email protected]
当编译器遇到@property时,会自动展开成getter和setter的声明
#import <Foundation/Foundation.h> @interface Student : NSObject { int _age; int _no; float _height; } // 当编译器遇到@property时,会自动展开成getter和setter的声明 @property int age; //- (void)setAge:(int)newAge; //- (int)age; @property int no; //- (void)setNo:(int)newNo; //- (int)no; @property float height; //- (void)setHeight:(float)newHeight; //- (float)height; - (void)test; @end
[email protected]
@synthesize会自动生成getter和setter的实现
#import "Student.h" @implementation Student // @synthesize age, height, no; // @synthesize会自动生成getter和setter的实现 // @synthesize默认会去访问跟age同名的变量 // 如果找不到同名的变量,会自动生成一个私有的同名变量age // @synthesize age; // age = _age代表getter和setter会去访问_age这个成员变量 @synthesize age = _age; //- (void)setAge:(int)newAge { // _age = newAge; //} // //- (int)age { // return _age; //} @synthesize height = _height; //- (void)setHeight:(float)newHeight { // _height = newHeight; //} // //- (float)height { // return _height; //} @synthesize no = _no; //- (void)setNo:(int)newNo { // _no = newNo; //} // //- (int)no { // return _no; //} - (void)test { _age = 10; _height = 10.0f; _no = 10; } @end
二、@property与@synthesize进阶用法
Person.h
#import <Foundation/Foundation.h> @interface Person : NSObject { int _ID; float _weight; } @property int ID; @property float weight; @end
Person.m
#import "Person.h" @implementation Person @synthesize ID = _ID; @synthesize weight = _weight; //- (void)setWeight:(float)weight { // _weight = weight * 1000; //} //- (float)weight { // return _weight * 1000; //} @end
三、@property与@synthesize终极用法
Teacher.h
#import <Foundation/Foundation.h> @interface Teacher : NSObject @property int age; @end
Teacher.m
#import "Teacher.h" @implementation Teacher // 在xcode4.5的环境下,可以省略@synthesize,并且默认会去访问_age这个成员变量 // 如果找不到_age这个成员变量,会自动生成一个叫做_age的私有成员变量 -(void)test { _age = 10; } @end
时间: 2024-10-11 20:28:46