码迷,mamicode.com
首页 > 移动开发 > 详细

ios 分类

时间:2018-02-09 14:54:14      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:open   成员   span   opened   优先   log   ide   blog   src   

技术分享图片
 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 分类

标签:open   成员   span   opened   优先   log   ide   blog   src   

原文地址:https://www.cnblogs.com/lanmaokomi/p/8434329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!