非正式协议及普通类别,类扩展

一、非正式协议

所谓非正式协议就是类别,即凡是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+选类名

你可能感兴趣的:(非正式协议及普通类别,类扩展)