//延展Extension,是为类扩充私有的方法,以及私有的实例变量,和分类Category相比,延展定义的方法是私有的,而且还可以定义实例变量(私有的)。

//@interface 开头 + 类名(哪一个类的延展) + 小括号,小括号内填写的是延展名,一般情况下都省略。 @end结束 (写在.m文件里)



main函数中的完整代码为:

#import<Foundation/Foundation.h>#import"Person.h"intmain(intargc,constchar*argv[]){@autoreleasepool{Person*person=[[Personalloc]initWithName:@"ruby"sex:@"man"age:23];[personsetName:@"Ruby"];person.age=13;//[personsayHi];}return0;}


创建一个Person类

Person.h中的完整代码为:

#import<Foundation/Foundation.h>@interfacePerson:NSObject{NSString*_name;//姓名NSString*_sex;//性别NSInteger_age;//年龄}#pragmamark-setterandgetter@property(nonatomic,retain)NSString*name;@property(nonatomic,retain)NSString*sex;@property(nonatomic)NSIntegerage;#pragmamark-initmethod-(id)initWithName:(NSString*)namesex:(NSString*)sexage:(NSInteger)age;@end


Person.m中的完整代码为:

#import"Person.h"@interfacePerson(){NSMutableArray*_personArr;}-(void)sayHi;@end@implementationPerson#pragmamark-initmethod-(id)initWithName:(NSString*)namesex:(NSString*)sexage:(NSInteger)age{self=[superinit];if(self){self.name=name;self.sex=sex;self.age=age;[selfsayHi];}returnself;}#pragmamark-sayHi-(void)sayHi{NSLog(@"Thisisaprivatemethod:%@,%@,%ld",self.name,self.sex,self.age);}@end