oc60--Category 分类 练习】的更多相关文章

/* 使用继承关系来扩充一个类,有一个弊病,高耦合性 category(分类,类别) 能够帮我们扩充一个类的功能 */ - (void)superJump { //    [self eat]; [self setAge:10]; _age = 20;//只要是在原类中生成的成员变量都可以在分类中直接访问 NSLog(@"超级跳"); } //如果分类中定义实现了与原类中相同的方法,那么原类中的方法相当于被覆盖掉了 //在实际的开发中,最好不要出现方法覆盖 - (void)eat {…
Objective-C中的Category(分类) 1 Category概念:动态的为已经存在的类加入新的行为(方法) 2 Category(分类)创建的方法 (1)通过Xcode生成分类 (2)能够手动生成分类,在头文件中面生成2个@interface 比如: 在Student.h文件里 @interface Student:NSObject -(void)test1; @end 以下是Student的分类,test为分类的名称 @interface Student(test) -(void)…
在写点击博客的所属分类,显示所有该分类的文章时真是让我想了好一会,为什么呢?因为我使用的是cbv模式开发的而不是简单的视图处理逻辑的,所以,有些操作会被包装好了,你并不知道它的细节,那么我们今天要实现的这个功能需要得到GET请求的category参数,那就麻烦了. 一开始,我以为需要重写它包装好的get()函数,结果弄了好一会后发现根本不好用. 后来,实在是没办法了,参照网上的说法,看了一看django源码,哇,效果果然显著,原来我们继承的ListView和MultipleObjectMixin…
分类: 主要是给原来类增加一些方法;不可以增加成员变量 Person (Person+eat) 非正式协议: 非正式协议就是类别,即凡是NSObject或其子类Foundation框架中的类增加的类别,都是非正义协议 给NSObject写一个类别,NSObject 类名(eat),NSObject子类都可继承里面的方法 分类(category)延展 延展类别又称类的扩展:类扩展中可以声明属性 @interface Person()// 类扩展 { // 添加属性 int _age: } // 扩…
1.Category 1)分类/类别(category): 允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).用以扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之后的一对圆括号 "( )" 中. @interface QCStudent (Print) @end @implementation QCStudent (Print) @end 分类文件名使用符号"+"来分隔类和分类的名字(Xcode 会自动生成). QCStuden…
A.给某个类扩充方法(不改变原来的类) 例如,给类Person加上名为Simon的category,加上一个-study方法 使用()注明 Person+Simon.h @interface Person (Simon) - (void) study; @end Person+Simon.m @implementation Person (Simon) - (void) study { NSLog(@"学习----"); } @end   使用: #import <Foundat…
1.Category 1)分类/类别(category): 允许以模块的方式向现有类定义添加新的方法(默认不能添加实例变量).用以扩展自己或他人以前实现的类,使它适合自己的需要. 分类的名称括在类名之后的一对圆括号 "( )" 中. @interface CHStudent (Print) @end @implementation CHStudent (Print) @end 分类文件名使用符号"+"来分隔类和分类的名字(Xcode 会自动生成). CHStuden…
用过别的语言做过开发的同学都知道,如果你想扩充一个类,就应该去继承这个类.但是OC里面有更好的方法,那就是分类. 那什么是分类呢?就是在不改变原先类,我们可以在其中添加咱们自定义的方法,这样和同事合作的时候,就用不着担心合并 代码产生的冲突了~因为我们可以定义属于自己的分类.但是使用分类的时候却不能向原先类中添加字段,如果想添加方法,那 应该使用继承来实现. 话不多说,我们直接上代码,我前几篇日志中提到一个student类,里面的方法是在是太单调了,只有一个keepBook的方法,现在 我需要让…
// ()代表着是一个分类 // ()中的Test代表着分类的名称 @interface Student (Test) // 分类只能扩展方法,不能增加成员变量 - (void)test2; @end…
易忘,所以留存: 1, 2, 3, 结果如下: 补充: http://tech.meituan.com/DiveIntoCategory.html…
一.Protocol协议 我们都知道,在C#有个规范称之为接口,就是规范一系列的行为,事物.在C#中是使用Interface关键字来声明一个接口的,但是在OC中interface是用来声明类,所以用了另外一个关键字protocol来表示. 下面我们定义一个动物的协议AnimalDelegate,人Person需要实现这个协议. Person.h文件 Person.m文件 二.Category分类 何为分类呢?一听这个概念可能很模糊.从C#的角度来说,相当于扩展方法(可以在不修改原本类的情况下使用…
OC 中的category分类文件相当于 C#中的部分类:OC 中的protocol协议文件(本质是头文件)相当于 C#中的接口.今天就简单说明一下OC中的这两个文件. 由于视频中的Xcode版本低,导致了分类文件和协议文件没有找到,最后百度得知: 如图:Xcode 7.2版本中的category文件和protocol文件都归类到了Objective-C File 中   一.category文件: 作用:可以扩展自定义类,或者系统类.下面的实例,是扩展了NSString 类,在类中扩展了计算字…
一 Category 分类:Category(类目,类别) (OC有) 命名:原来的类+类别名(原来的类名自动生成,只要写后面的类别名,一般以模块名为名.比如原来类 Person,新建分类 Ct,新建的分类名为 Person+Ct ) 作用: 在不改变原来类的内容的情况下,可以给原来的类添加一些新的方法. 注意: 1)分类只能增加方法,不能增加成员变量. 2)分类方法的实现中,可以访问原来类中的成员变量. 3)分类可以重写原来类的方法.但是会覆盖原来类的方法(一般不会再分类当中重写原来类的方法)…
在c++中我们可以多继承来实现代码复用和封装使程序更加简练.在objective-c中只能单继承,不能多继承,那么除了协议protocol之外,我们可以实现类似多继承的一个方法就是,分类(category,又称类别).类别可以不修改原来的类(父类),和派生类的情况下,为原有的类增加新的方法,但是分类不能增加实例变量. 格式(format): @interface class_name(category_name)<protocol,....> method _declaration; ....…
Category 分类 ,又称为类别.类目 概念 Category有多种翻译:分类.类别.类目(一般叫分类的多) Category式OC特有的语法,其他语言没有的语法(类似于C#语言中的"扩展方法"和partial 关键字 作用 在不修改原有类的基础上增加新的方法 一个庞大的类可以分模式开发 一个庞大的类可以由多个人来编写,更有利于团队合作 使用Category的作用 )对现有类进行扩展 比如,你可以扩展Cocoa touch框架中的类,你在列表中增加的方法会被子类所继承,而且在运行时…
一. 分类-Category 1. 基本用途:Category  分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Category) 2. 格式 ➢ 分类的声明 @interface 类名 (分类名称) // 方法声明 @end ➢ 分类的实现 @implementation 类名 (分类名称) // 方法实现 @end 3. 好处 ➢ 一个庞大的类可以分模块开发 ➢ 一个庞大的类可以由多个人来编写,更有利于团队合作 ➢ …
OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警…
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: pointer; position: absolute…
<? global $wp_query; $cat_ID = get_query_var('cat'); $category = get_category($cat_ID); echo $category->slug; ?> get_category()    根据分类ID获得指定分类全部信息,以数组或是对象的形式返回,以下是该函数的返回值示例: stdClass Object( //ID 分类和标签混编 [term_id] => 5 //分类名 [name] => Cat…
OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警…
@class 当定义一个类,必须为编译器提供两组消息,第一组(接口部分.h):构建类的实例的一个基本蓝图.必须指定类名,类的超类,类的实例变量和类型的列表,最后是类的方法的声明.第二组(实现部分.m):实现类的方法的代码. 例如: ------------------------------ RockStar.h ------------------------------------------- #import<Foundation/Foundation.h>//?用#import呢,原因…
Fallback定义在所有子着色器后.简单来说,它表示"如果没有任何子着色器能被运行在当前硬件上,请尝试使用降级着色器". Syntax 语法 Fallback "name" 退回到给定名称的着色器 Fallback Off 显式声明没有fallback并且不会打印任何警告,甚至没有子着色器会被运行 Details 细节 Fallback标志的功能和将另一个着色器的所有子着色器拷贝到标志所在位置所起的功能相同 Example 示例 Shader "exam…
IOS中类的扩展(协议,分类) 扩展类,我们可以使用协议和分类这两种方法,下面我们来分别实现这两种方法: 参考网址:http://www.cnblogs.com/wendingding/p/3709569.html 正式协议: 是一个命名的方法列表,它要求显示的采用协议,采用协议的方法是在类的@interface声明中列出协议的名称,此时,实现协议的类应该遵守协议,承诺实现协议中的所有方法,否则编译器将会发出警告. 协议中的方法有两类属性,@required(默认)和@optional两种,@r…
Category(分类): 当我们在开发过程中要给类添加新的方法时,一般不要去动原类. 再不改动原类的限制下,怎么拓展类的方法?以往我们的做法是新建子类使其继承该类,然后通过子类拓展类的行为. OC提供了一种全新的方法:Category(分类).在不改动原类的基础上动态的拓展类的行为. 假如我们要动态拓展Student类,则应该建一个分类(Category),注意:文件命名要有规范,Student+StuOthers.h 格式:只要在被扩展的类名(原类)后加(),在括号里写分类名(拓展类名):…
1.category分类表表结构id,name,pid,sort,结合category.class.php类使用. 2.PHPExcel导入数据函数示例 function excel_to_mysql($file){ //导入PHPExcel第三方类库 vendor('PHPExcel.PHPExcel'); //实例化PHPExcel类,用于接收Excel文件 $PHPExcel = new PHPExcel(); //读取Excel文件类实例化 $PHPReader = new PHPExc…
Category,分类,类目.主要作⽤用是为没有源代码的添加方法,例系统自带的NSString. 通过Category添加的方法会成为原类的一部分.从⽽而达到扩展一 个类的功能.   Category NSString+SayHi.h文件  @interface NSString (SayHi) - (void)hi;  @end /* 分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法  使用注意: 1.分类只能增加方法,不能增加成员变量 2.分类方法实现中可以访问原来类中声明的成员…
细心的人会发现当我们new 一个文件的时候会发现下图的部分. 但是这个问题来了Category 和 Extension 就近又什么区别呢? 1:什么是Category? 实现这样一种场景,当我们用我们用NSArray的时候经常会遇到要去重的操作,可是自带的NSArray并没有这个方法,想要用你第一印象是自己写个类继承他,OC 给我们提供了一个方法可以直接在原有的基础上进行扩展.这就Category.分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法.一个类可以有n…
一.构造方法 (一)构造方法的调用 创建一个可用的对象:Person *p=[Person new]; new方法实际上是分为两步来创建一个对象: 1)使用+alloc方法来分配存储空间(返回分配的对象): 2)使用-init方法来对对象进行初始化. 可以把new方法拆开如下: 1.调用类方法+alloc分配存储空间,返回未经初始化的对象 Person *p1=[person  alloc]; 2.调用对象方法-init进行初始化,返回对象本身 Person *p2=[p1 init]; 3.以…
OC语言构造方法: 用来初始化对象的方法,对象方法,以减号开头 为了让对象创建出来,成员变量就会有一些固定的值 重写构造方法的注意点: 先调用父类的构造方法([super init]) 再进行子类内部成员变量的初始化 参考:http://www.codes51.com/article/detail_111604.html 构造方法的调用: 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情, 1)使用alloc方法来分配存储…
作者:韩俊强 总结以往方法: 继承是可以完成对类型的扩充,不仅能添加方法,也可以添加实例变量:/缺点:如果工程中有很多需要扩充类的使用,此时要用子类去完成替换,工作量非常大,还容易出错.下面通过例子过渡一下进入类的扩展! ==============================================================  1.例子:通过继承完成类的扩展 Person.h @interface Person : NSObject {     NSString *_name…