OC语法9——Category类别
Category(分类):
当我们在开发过程中要给类添加新的方法时,一般不要去动原类。
再不改动原类的限制下,怎么拓展类的方法?以往我们的做法是新建子类使其继承该类,然后通过子类拓展类的行为。
OC提供了一种全新的方法:Category(分类)。在不改动原类的基础上动态的拓展类的行为。
假如我们要动态拓展Student类,则应该建一个分类(Category),注意:文件命名要有规范,Student+StuOthers.h
格式:只要在被扩展的类名(原类)后加(),在括号里写分类名(拓展类名);
Student+StuOthers.h中
#import "Student.h"
@interface Student (StuOthers) //括号里就是分类名
- void test();
@end
Student+StuOthers.m中
#import "Student+StuOthers.h"
@implementation Student (StuOthers)
- void test()
{
@NSLog(@"wanger");
}
@end
OC语法9——Category类别的更多相关文章
- 关于OC语法的公开和私有的讨论
关于OC语法的公开和私有的讨论 OC语法中,类的.h文件向外面暴露类的功能/方法接口,其中定义的属性/方法/协议/类别/类扩展都属于公开的,但实例变量要看限定词(@protected/@public/ ...
- ios category类别的使用
ios category类别的使用 Objective-C提供了一个非常灵活的类(Class)扩展机制-类别(Category).类别用于对一个已经存在的类添加方法(Methods).你只需要知道这个 ...
- OC分类(类目/类别) 和 类扩展 - 全解析
OC分类(类目/类别) 和 类扩展 - 全解析 具体见: oschina -> MyDemo -> 011.FoundationLog-OC分类剖析 http://blog.csdn. ...
- OC基础--分类(category) 和 协议(protocol)
OC 中的category分类文件相当于 C#中的部分类:OC 中的protocol协议文件(本质是头文件)相当于 C#中的接口.今天就简单说明一下OC中的这两个文件. 由于视频中的Xcode版本低, ...
- [ios]objective-c中Category类别(扩展类)专题总结
本文转载至 http://yul100887.blog.163.com/blog/static/20033613520126333344127/ objective-c类别的作用?通过类别的方式, ...
- iOS category 类别 和 extension 扩展
category 类别 又称为 分类 在ios项目开发中允许使用类别为现有的类添加新的方法,并不需要创建子类.通过类别我们可以动态地为现有的类添加新的方法,可以将类的定义模块化地布局到多个相关文件中 ...
- Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式
Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式 Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式 > ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
- 基本语法 protocols Category extension
转:http://blog.csdn.net/wangeen/article/details/16989529 protocol 本质就是一系列的method的声明,他并不像class是必须的选项 ...
随机推荐
- ORACLE 主要后台进程1
Oracle Database Background Processes: 1.Database writer (DBWn)The database writer writes modified bl ...
- SecureCRT 绝佳配色方案
终端有一个好的配色,不仅能保护自己的眼睛,也能给人一个好心情,本配色方案适合任意一种SSH客户端软件. 设置背景颜色 Options => Sessions options => Term ...
- .NET cookie 使用方法
创建 C# cookie,两种方法 Response.Cookies["userName"].Value = "patrick"; Response.Cooki ...
- sql语句批量处理Batch
package Statement批量处理; import java.sql.Connection; import java.sql.DriverManager; import java.sql.St ...
- zendStudio安装Xdebug项目断点调试
1,首先安装xdebug插件 传送门 2,配置php.ini文件如下: [XDebug] xdebug.profiler_append = xdebug.profiler_enable = xdebu ...
- Java面试题整理(题目内容非原创)
面试题分类: 1.java 基础面试题 Java基础中对于io 中文件的读.写,util中的list map set这些要分清楚 还有线程.socket 都需要了解下 参考链接:http://blog ...
- 封装jQuery插件的步骤
引语:jQuery提供了很多插件,我们在开发的过程使用插件能节省时间简化开发也避免从头开始编写每个组件,单我们除了懂得使用别人已编写好的插件以外,也到懂得如何封装属于我们自己的插件,以下就是封装jQu ...
- html5 canvas 画hello ketty
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- JavaScript基本概念(操作符)
一元操作符 一元操作符在处理所有的非数值时,相当于将该值经过Number()转换成数值,如 +"12" 将把 "12" 字符串转换为数字. 位操作符 负数在计算 ...
- 关于python命令在editor里编写与在interpreter里的编写的不同之处
关于python命令在editor里编写与在interpreter里的编写的不同之处 其实用这个标题,我心里还是有点胆怯的.作为一个python入门的小白,不,编程入门的小白,我还不太确定我对edit ...