码迷,mamicode.com
首页 > 其他好文 > 详细

[Objective-c 基础 - 2.8] category分类/类别/类目

时间:2015-05-13 21:43:07      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

A.给某个类扩充方法(不改变原来的类)
例如,给类Person加上名为Simon的category,加上一个-study方法
使用()注明
Person+Simon.h
技术分享
 1 @interface Person (Simon)
 2 - (void) study;
 3 @end
 4  
 5 Person+Simon.m
 6 @implementation Person (Simon)
 7 - (void) study
 8 {
 9     NSLog(@"学习----");
10 }
11 @end
技术分享

 

 
使用:
技术分享
 1 #import <Foundation/Foundation.h>
 2 #import "Person.h"
 3 #import "Person+Simon.h"
 4 
 5 int main(int argc, const char * argv[]) {
 6     @autoreleasepool {
 7         Person *p = [[Person alloc] init];
 8         [p study];
 9     }
10     return 0;
11 }
12  
技术分享

 

!!注意:
1.只能增加方法,不能增加成员变量;
2.分类方法可以访问原来的成员变量;
3.分类和原类存在同名方法的时候,分类的方法优先级比较高,会覆盖原类的同名方法;
4.多个分类存在同名方法的时候,调用决定于编译顺序,调用最后编译的(编译顺序可以在项目设置的“Buid Phases”中修改);
 

 

 
 

[Objective-c 基础 - 2.8] category分类/类别/类目

标签:

原文地址:http://www.cnblogs.com/wvqusrtg/p/4501604.html

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