1 #import “UIViewController.h” 2 @interface UIViewController(CustomView) 3 -(void)extMethod; 4 @end
1 #import “UIViewController+CustomView.h” 2 @implementation UIViewController(CustomView) 3 -(void)extMethod; 4 @end
1 @interface MyObject:NSObject 2 { 3 NSNumber* number; 4 } 5 -(NSNumber*)getNum; 6 @end 7 8 @interface MyObject(Setter) 9 -(void)setNum:(NSNumber*)num; 10 @end 11 12 @implementation MyObject 13 -(NSNumber*)getNum 14 { 15 return number; 16 }
1 @interface MyObject:NSObject 2 { 3 NSNumber* number; 4 } 5 -(NSNumber*)getNum; 6 @end 7 8 @interface MyObject() //注意这里的括号里面是没有名字的 9 -(void)setNum:(NSNumber*)num; 10 @end 11 12 @implementation MyObject 13 -(NSNumber*)getNum 14 { 15 return number; 16 } 17 18 -(void)setNum:(NSNumber*)num 19 { 20 number = num; 21 } 22 @end
3.私有扩展
在以往写代码时,我们经常是把声明写在.h文件中,把实现写在.m文件中.
但是在实际开发中,如果把声明写在.h文件中会暴露程序很多属性(成员变量、成员变量的get和set方法),为了安全考虑,引入了类扩展的概念.
类扩展中的属性是私有的。在进行程序开发时,比如在ViewController.m文件中,常常会发现在
@implementation
@end;
上面多了一个:
@interface ViewController ()
//
@end;
上面代码就是类扩展,也就是类的私有扩展,以后就可以把以往写在声明里的代码写在这里面
iOS开发---分类和扩展(Categories和Extensions)
原文:http://www.cnblogs.com/CoderAlex/p/4865905.html