1.概念:
Category可以动态为已经存在的类增加一个方法,可以不改动原有的类。

2. 如何创建一个Category类
创建一个文件,选择Objective-C category,点next
取名时,要对哪个类进行拓展,Category on就选择哪个类
会生成类名+文件名的名字的文件

//()代表着一个分类,()中的Test表示分类的名称

@interface Student (Test)

- (void)test;

@end

3.Category的使用场景

在定义类时需要其中的某个或几个类添加新方法

一个类中包含多类的方法需要实现,需要不用团队成员完成

在基础类库中,有可能希望实现一些自己需要的方法,比如写个NSString +JSON .h,为NSString这个类拓展一些解析JSON的方法

4.也可以将Category写在原来的类中
@interface Student:NSObject

-(void)test;

@end

@interface Student(Addition)

-(void)test2;

@end

六、动态增加方法Category的更多相关文章

  1. python 面向对象六 动态添加方法 __slots__限制动态添加方法

    一.动态添加属性 >>> class Student(object): pass >>> st = Student() >>> st.name = ...

  2. C#—Dev XtraTabControl动态增加Tab和关闭选项卡方法

    C#—Dev XtraTabControl动态增加Tab和关闭选项卡方法,有需要的朋友可以参考下. 记录一下以免以后忘了 添加using DevExpress.XtraTab; 双击listview增 ...

  3. C#—Dev XtraTabControl操作总结如动态增加Tab和关闭选项卡方法等

    1:显示行号 找到gridview属性 点击事件 CustomDrawRowIndicator private void gridView1_CustomDrawRowIndicator(object ...

  4. ASP.NET动态增加HTML元素的方法实例小结

    本文实例讲述了ASP.NET动态增加HTML元素的方法.分享给大家供大家参考,具体如下: 在使用asp.net进行web开发的时候页面中的<head></head>中的信息可以 ...

  5. Javascript的动态增加‘类’的方法

    1.我们可以为每一个实例对象增加方法.也就是说我们在每次使用‘类’之外的方法时候,都需要创建一次. function Dog(){ window.alert('I  am a dog!'); } va ...

  6. OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数

    1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如 ...

  7. Hyperledger Fabric 动态增加组织到网络中

    本文基于Hyperledger Fabric 1.4版本. 官方文档地址:传送门 动态添加一个组织到Fabric网络中也是一个比较重要的功能.官方文档写的已经很详细了,有能力的尽量还是看官方文档,本文 ...

  8. Fabric进阶(三)—— 使用SDK动态增加组织

    在fabric网络运行过程中动态追加新的组织是相当复杂的,网上的资料也十分匮乏,大多是基于first-network这样的简单示例,而且是使用启动cli容器的方法来增加组织,几乎没有针对实际应用的解决 ...

  9. ios的runtime为什么可以动态添加方法

    一句话概括 每个instance都有一个isa,这个isa,里面含有所有的方法列表,ios提供库函数增加,修改,即实现了动态添加方法

随机推荐

  1. 递归练习(C语言)

    本文地址:http://www.cnblogs.com/archimedes/p/recursive-practice.html,转载请注明源地址. 1.炮弹一样的球状物体,能够堆积成一个金字塔,在顶 ...

  2. Android群英传笔记系列三 view的自定义:实现一个模拟下载

    1.实现效果:动态显示进度(分别显示了整个的动态改变的过程,然后完成后,弹出一个对话框)       2.实现过程:可以分为绘制一个圆,圆弧和文本三部分,然后在MainAcitivity中通过线程模拟 ...

  3. 【原】画流程图工具visio使用技巧汇总

    最近写论文需要画不少流程图,有两种选择,一是word, 二是visio.原先一直用word画,效果也还可以,但是每个部件画完后为了便于适应排版变动,需要将需要的模块按下ctrl逐个点击选中后进行组合. ...

  4. iOS 学习 - 1.代理传值

    代理的目的是改变或传递控制链.允许一个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针.可以减少框架复杂度.
另外一点,代理可以理解为java中的回调监听机制的一种类似 优点:1.避免子类化带 ...

  5. WPF + Caliburn.Micro +ActionMessage事件绑定

    ActionMessage事件绑定是个人觉的算是CM的精髓了,比如说我在View里面放个button,我们要在他的click事件里面写东西,怎么写.如果是WPF我们直接在CS里面写就可以.但是CM不行 ...

  6. JSP入门&会话技术

    一.JSP    1.jsp技术        jsp是sun提供动态web资源开发技术.为了解决在Servlet中拼写html内容css.js内容十分不方便的问题,sun提供了这样一门技术.如果说S ...

  7. window平台下的MySQL快速安装。(不好意思,未完成待续,请飘过)

    MySQL安装方式 MSI安装(Windows Installer) ZIP安装 最好选择ZIP安装,比较干净,也快速搞好. 下载链接:http://pan.baidu.com/s/1sjFZZul ...

  8. [Nginx][HttpUpstreamModule]翻译负载均衡

    英文原文地址:http://nginx.org/en/docs/http/ngx_http_upstream_module.html 大纲: 示例 指令 嵌入变量 ngx_http_upstream_ ...

  9. Spring-2-H Array Diversity(SPOJ AMR11H)解题报告及测试数据

    Array Diversity Time Limit:404MS     Memory Limit:0KB     64bit IO Format:%lld & %llu   Descript ...

  10. php进程的SIGBUS故障

    某个子站是php写的,访问的时候nginx时不时会冒出现502错误,高峰时更频繁,检查php-fpm的日志发现大量的 child exited on signal 7 (SIGBUS),并且和acce ...