给类添加方法 在不继承,不拓展类的情况下使用分类来完成对某一个类的方法进行扩展 团队开发时 每个功能可以使用一个分类来写 分类不能添加成员变量 只能添加方法。 在 main函数中 需要引入所有的分类的.h文件 时间: 2024-10-27 03:32:44
学了这么久OC我们都知道OC中的类分为系统类和自定义的类,当我们在使用系统为我们提供的类时有时往往不能满足我们的需要,例如,字符串NSString类提供了比较字符串的方法compare,为数组排序时系统默认的是升序,当需要为数组按降序排序时,一种途径是需要新建一个类写一个降序的方法,而另一个途径就是系统提供的category(分类,类目),分类(类目,category)的目的为了给没有源代码的类添加方法(只能添加方法,不能添加实例变量),是扩充一个类功能的方式之一,为原有类扩充的方法会成为原类的
OC 中的category分类文件相当于 C#中的部分类:OC 中的protocol协议文件(本质是头文件)相当于 C#中的接口.今天就简单说明一下OC中的这两个文件. 由于视频中的Xcode版本低,导致了分类文件和协议文件没有找到,最后百度得知: 如图:Xcode 7.2版本中的category文件和protocol文件都归类到了Objective-C File 中 一.category文件: 作用:可以扩展自定义类,或者系统类.下面的实例,是扩展了NSString 类,在类中扩展了计算字
Category(分类): 当我们在开发过程中要给类添加新的方法时,一般不要去动原类. 再不改动原类的限制下,怎么拓展类的方法?以往我们的做法是新建子类使其继承该类,然后通过子类拓展类的行为. OC提供了一种全新的方法:Category(分类).在不改动原类的基础上动态的拓展类的行为. 假如我们要动态拓展Student类,则应该建一个分类(Category),注意:文件命名要有规范,Student+StuOthers.h 格式:只要在被扩展的类名(原类)后加(),在括号里写分类名(拓展类名):
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 上一章我们学习了OC的一些核心语法,初步了解了OC作为一门开发语言的一些较为深层次的知识.本章我们继续学习OC的核心语法,主要包括OC的构造方法,Category分类,类的本质及深入研究,以及description关键字和SEL关键字. 第一讲 构造方法 1. 构造方法 构造方法是用来初始化对象的方法,是一个对象方法,以减号"-"开头,构造方法其实就是init方法,初始化完毕
#import <Foundation/Foundation.h>//#import "Person.h"#import "NSString+SayHiMessage.h"#import "NSMutableArray+ChangeArray.h" #import "NSString+ExchangeChineseToEnglish.h" #import "NSString+EmailValidation
升级Xcode6之后我们发现,本来创建category文件的选项突然不见了,那在在Xcode6中怎么创建OC category文件,其实它还是在,只是Xcode6把他放在了第二步选择了: 点击下一步,我们就可以选择创建category文件了 然后选择如下:比如:给Person类写一个名字为QYMa的分类 ok!这样分类就建好啦! (我都写完了,为什么不让我发-_-#,200字很重要嘛?解决问题才是关键啊!我不想写废话的!是你逼我的!-_-#.今天外面继续是打雷 闪电大暴雨!忽然想起一篇文章名字叫
1 Category概念:动态的为已经存在的类添加新的行为(方法) 2 Category(分类)创建的方法 (1)通过Xcode生成分类 (2)可以手动生成分类,在头文件里面生成2个@interface 例如: 在Student.h文件中 @interface Student:NSObject -(void)test1; @end 下面是Student的分类,test为分类的名称 @interface Student(test) -(void)test2; @end 在Student.m文件中
1 分类就是类的补充和扩展,本质上是类的一部分,把一个类分成若干部分,每个部分就是分类. 2 语法 * 文件中的语法@interface 主类类名(分类类名) * 文件名通常为:主类名+分类名 * 调用方法时,只需要向主类引用放送消息即可 3 使用分类的方式 * 可以给一个类增加功能(增加方法) * 将类分成若干部分 * 分类不但可以给自定义的类添加功能,还可以给不知道源代码的类添加功能.比如NSString添加一个具体网络访问功能(访问服务器) * 在分类中,不可以定义实例变量,也不可以定义属
分类: 在不修改原有的类的基础上增加新的方法 一个庞大的类可以分模块开发 一个庞大的类可以由多个人来编写,更有利于团队合作 除已有的Person.h和Person.m,新增两个文件(当然这样的分类 可以有很多个) Person+Stone.h #import "Person.h" @interface Person (Stone)//Person分类类型 Stone分类名 { //不能在分类中定义成员 } - (void) info; @end Person+Stone.m #impo