一、非正式协议
所谓非正式协议就是类别,即凡是NSObject或其子类的类别。
如:NSObject+run,但是不会给NSObject增加非正式协议。否则[gun run];枪会跑
NSString+countNum 。NSString是foundation框架中的类别。
二、普通类别(只能增加方法,不能增加成员变量)
普通类别创建(.h文件):
newfile->iOS Object-C File (.m)->分类名+category+选类名
调用时需要导入头文件。
格式:
//声明
@interface Person (base)
-(void)eat;
@end;
//实现
@implemention Person (base)
-(void)eat{
NSLog(@“人会吃”);
}
@end;
三、类扩展(是分类的一个特例,可以增加成员变量)
(1)直接增加声明 在 Person.h或Person.m文件中均可
@interface Person ()
{ float weight;}
-(void)palyLOL;
@end
实现在Person.h文件下的@implementation Person 下直接实现(通过self调用)
(2)创建(.h文件)
newfile->iOS Object-C File (.m)->类扩展名+extension+选类名