ios 分类

Posted 懒猫口米

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 分类相关的知识,希望对你有一定的参考价值。

 1 //
 2 //  main.m
 3 //  分类
 4 //
 5 
 6 /*
 7  分类:Category (类目,类别)(OC特有)
 8  命名:Person+EE  (Person+ 自动生成,只要写后面的,一般以模块名为名)
 9  分类的作用:在不改变原来类的内容的情况下,可以给我们的类添加一些方法
10  注意:
11  1>分类只能增加方法,不能增加成员变量
12  2>分类方法的实现中可以访问原来类中的成员变量
13  3>分类可以重写原来类中的方法,但是会覆盖掉原来类的方法(一般不会再分类当中重写原来类的方法)
14  4>调用优先级:分类优先(最后参与编译的分类会优先调用)
15  */
16 
17 #import <Foundation/Foundation.h>
18 #import "Person.h"
19 #import "Person+EE.h"
20 #import "Person+BB.h"
21 int main(int argc, const char * argv[]) {
22     Person *p = [[Person alloc]init];
23     p.age = 10;
24     [p test];
25 //    [p run];
26     return 0;
27 }
main.m

 

 

 1 //
 2 //  Person.h
 3 //  分类
 4 //
 5 
 6 #import <Foundation/Foundation.h>
 7 
 8 @interface Person : NSObject
 9 {
10     int _age;
11 
12 }
13 @property int age;
14 - (void)test;
15 @end
Person.h
 1 //
 2 //  Person.m
 3 //  分类
 4 //
 5 
 6 #import "Person.h"
 7 
 8 @implementation Person
 9 
10 - (void)test{
11 
12     NSLog(@"调用Person-test方法");
13 
14 }
15 @end
Person.m

创建分类

 

 

 1 //
 2 //  Person+EE.h
 3 //  分类
 4 //
 5 
 6 #import "Person.h"
 7 
 8 @interface Person (EE)
 9 //{
10 //    int a;
11 //
12 //}
13 - (void)run;
14 @end
Person+EE.h
 1 //
 2 //  Person+EE.m
 3 //  分类
 4 
 5 #import "Person+EE.h"
 6 
 7 @implementation Person (EE)
 8 
 9 - (void)run{
10     self.age = 10;
11     NSLog(@"调用了run方法=%d",self.age);
12 
13 }
14 
15 - (void)test{
16 
17     NSLog(@"调用分类EE的test方法");
18 
19 }
20 @end
Person+EE.h
 1 //
 2 //  Person+BB.h
 3 //  分类
 4 //
 5 
 6 
 7 #import "Person.h"
 8 
 9 @interface Person (BB)
10 
11 @end
Person+BB.h
 1 //
 2 //  Person+BB.m
 3 //  分类
 4 //
 5 
 6 
 7 #import "Person+BB.h"
 8 
 9 @implementation Person (BB)
10 
11 - (void)test{
12 
13     NSLog(@"调用分类BB的test方法");
14 
15 }
16 @end
Person+BB.m

 

分类的优先级 从下往上顺序可调

 

 

/*

 分类:Category (类目,类别)(OC特有)

 命名:Person+EE  (Person+ 自动生成,只要写后面的,一般以模块名为名)

 分类的作用:在不改变原来类的内容的情况下,可以给我们的类添加一些方法

 注意:

 1>分类只能增加方法,不能增加成员变量

 2>分类方法的实现中可以访问原来类中的成员变量

 3>分类可以重写原来类中的方法,但是会覆盖掉原来类的方法(一般不会再分类当中重写原来类的方法)

 4>调用优先级:分类优先(最后参与编译的分类会优先调用)

 */

 

以上是关于ios 分类的主要内容,如果未能解决你的问题,请参考以下文章

iOS xcode 代码片段

iOS常用于显示几小时前/几天前/几月前/几年前的代码片段

java内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段

iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段

iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段