分类Category的使用

  1. 声明方法

在分类的接口中,只允许新增方法,不能新增变量。其语法格式如下:

@interface 类名(分类名)

  新增方法声明;

@end

如有在分类中定义变量,将出现错误"Instance variables may not be placed in categories"

  1. 定义方法

在分类的实现文件中,对新增的方法进行定义,其语法形式如下:

@implementation 类名(分类名)

新增方法的定义{

语句;

}

@end

  1. 方法的调用

分类的方法声明和定义好后,就可以对声明和定义的方法进行调用了,其语法形式如下:

[对象名 新增方法名];

示例,代码程序如下:

类Aaa的定义及实现:

#import <Foundation/Foundation.h>
@interface Aaa : NSObject{
    int val;
}
@end

#import "Aaa.h"
@implementation Aaa
@end

  分类Aaa(Cate)定义及实现:

#import "Aaa.h"
@interface Aaa(Cate)
-(int) intval;
@end

#import "Aaa+Cate.h"
@implementation Aaa (Cate)
-(int) intval{
    val = 1000;
    return val;
}
@end

  main方法中调用:

#import <Foundation/Foundation.h>
#import "Aaa+Cate.h"
int main(int argc, const char * argv[])
{
    Aaa *a = [[Aaa alloc]init];
    NSLog(@" val = %d",[a intval]);
    return 0;
}

  执行结果:

  

posted on 2015-02-14 15:12  雾里寻梦  阅读(316)  评论(0)    收藏  举报

导航