温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Objective-C 入门(六)category 分类

发布时间:2020-05-24 21:19:20 来源:网络 阅读:889 作者:skyoceanone 栏目:移动开发

 

Objective-C 入门(六)category 分类
category 字面就很好理解 把你类中定义的一些方法单拿出去(为什么要拿出去呢?)
其实他的实际作用就是为写的类来扩充一些方法 这对于你的代码扩充性是一个很好的作用
category分出来的方法是不一定要全部实现的 你可以先定义出来 在你需要的时候来补充它就可以了
 
如何实现category呢
两种方法
一: 在你原有的.h头文件中 直接加入category
 例如源代码 :
 # import <Foundation/Foundation.h>
 @interface Preson:NSObject{
int _age;
NSString * _name;
 }
 @propert (nonatomic,assign)int age;
 @propert (nonatomic,retain)NSString*name;
 -(void)say;
 @end;
加入category 之后.h:
 
 # import <Foundation/Foundation.h>
 @interface SKPerson(自定义一个名字)//-----此处为category 需要加个小括号
 -(void)go;
 @ end
 
 @interface SKPerson:NSObject{
int _age;
NSString * _name;
 }
 @propert (nonatomic,assign)int age;
 @propert (nonatomic,retain)NSString*name;
 -(void)say;
 @end;
 
.m文件为:
    
#improt "SKPerson.h"
@implementation SKPerson(自定义一个名字)
-(void)go{
 NSLog(@"This is SKPerson category")
}
    @end;
 @implementation SKPerson
syncthsize age=_age;
syncthsize name=_name;
-(void)say{
 NSLog(@"This is SKPerson")
}
    @end;
 
二: 新建一个类 选择.category 文件 命名通用方法 SKPerson+自定义一个名字 //---------注意有个"+"号
这里就可以直接写新的方法了
 
.h文件为:
 #improt "SKPerson.h"
 @interface SKPerson(自定义一个名字)
   -(void)go; 
 @end
.m文件为:
 #improt "SKPerson(自定义一个名字)"
 @implementation SKPerson(自定义一个名字)
 -(void)go{
 NSLog(@"This is SKPerson category")
}
 @end
 
使用 category 要注意以下几点
1 可以访问原类中的方法属性
2 可以覆盖原类中的方法
3 只能增加消息 不能改变实例变量
 
                          ---------本博文针对有JAVA基础 OC还属于初学者 文中有错误的地方还请指出
 
 
 
 
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI