OC-分类

1.不能再分类里面添加属性, 只能添加方法。

2.如果在分类里面使用@property,那么他只生成sette,getter的声明而没有实现。

3.如在在分类中写了与本类同名的方法,优先调用分类里面的方法

4.在分类里面可以访问本类里面所定义的属性

例子:目录

主函数main.m

#import <Foundation/Foundation.h>

#import "NSString+CategoryNSString.h"

int main(int argc, const char * argv[]) {

@autoreleasepool {

NSString *str=@"abc";

NSLog(@"%@", [str Reverser]);

NSLog(@"%d",[str leng].intValue);

}

return 0;

}

类目文件:NSString+CategoryNSString.h

#import <Foundation/Foundation.h>

@interface NSString (CategoryNSString)

-(NSString *)Reverser;

-(NSNumber *)leng;

@end

类目文件:NSString+CategoryNSString.m

#import "NSString+CategoryNSString.h"

@implementationNSString (CategoryNSString)

/**

*  字符串反转函数

*

*  @param string 传入的字符串

*

*  @return 逆序后的字符串

*/

-(NSString *)Reverser{

NSMutableString *str=[NSMutableString string];

for (unsigned long i=(self.length); i>0; i--) {

[str appendFormat:@"%c",[self characterAtIndex:i-1]];

}

return str;

}

/**

*  把字符串长度int类型变成NSNumber类型

*

*  @param string 出入的字符串

*

*  @return NSNumber,字符串的长度

*/

-(NSNumber *)leng{

NSNumber *num=[[NSNumber alloc]initWithUnsignedLong:self.length];

return num;

}

@end

时间: 2024-11-05 13:51:38

OC-分类的相关文章

OC分类

为现有类(一般是系统类)扩展一些新的方法,而不通过子类继承 以上为例,自动创建出两个文件 NSString+AddMethod.h 1 #import <Foundation/Foundation.h> 2 3 4 @interface NSString (AddMethod) 5 6 7 @end NSString+AddMethod.m 1 #import "NSString+AddMethod.h" 2 3 4 5 @implementation NSString (

OC分类(Category)

Category 分类 ,又称为类别.类目 概念 1 Category有多种翻译:分类.类别.类目(一般叫分类的多) 2 Category式OC特有的语法,其他语言没有的语法(类似于C#语言中的"扩展方法"和partial 关键字 作用 1 在不修改原有类的基础上增加新的方法 2 一个庞大的类可以分模式开发 3 一个庞大的类可以由多个人来编写,更有利于团队合作 使用Category的作用 1 1)对现有类进行扩展 2 比如,你可以扩展Cocoa touch框架中的类,你在列表中增加的方

OC分类和协议

// //  ViewController.m //  OC11分类和协议 // //  Created by Zoujie on 15/9/13. //  Copyright (c) 2015年 Zoujie. All rights reserved. // #import "ViewController.h" #import "Fraction.h" #import "GraphicObject.h" @interface ViewContr

Objective-C 分类Category

OC提供了一种可以在不修改类的源码基础上,扩展类的方法的功能,"分类"Category,这个机制和C#中的扩展方法类似,一般用于在不方便修改类的源码时(如OC系统相关的类库),但有有需求要拓展类的方法,可以使用分类来实现. Java中应该是没有提供相关的机制,但是Java可以通过动态代理来实现AOP,在切入点前后执行代码逻辑,个人认为比OC还要方便. // // Girl.h // 10_Category // // Created by apple on 14/12/23. // C

OC语言类的深入和分类

一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一个方法 Study方法的实现 测试程序: (二)分类的使用注意 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告): (4)方法调用的

OC基础--分类(category) 和 协议(protocol)

OC 中的category分类文件相当于 C#中的部分类:OC 中的protocol协议文件(本质是头文件)相当于 C#中的接口.今天就简单说明一下OC中的这两个文件. 由于视频中的Xcode版本低,导致了分类文件和协议文件没有找到,最后百度得知: 如图:Xcode 7.2版本中的category文件和protocol文件都归类到了Objective-C File 中   一.category文件: 作用:可以扩展自定义类,或者系统类.下面的实例,是扩展了NSString 类,在类中扩展了计算字

021-ARC与分类-OC笔记

学习目标 1.[掌握]自动释放池 2.[理解]ARC机制 3.[理解]单个对象的内存管理 4.[理解]多个对象的内存管理 5.[掌握]ARC机制下的循环引用问题 6.[了解]MRC和ARC的兼容 7.[了解]MRC自动转为ARC 8.[掌握]分类Category 一.自动释放池 使用@autoreleasepool关键字声明一个代码块,这个代码块中的对象调用autorelease方法后,在自动释放池被销毁的时候,会统一调用一次这些对象的release方法(注意只是调用对象的release方法,并

OC的分类和协议

分类和协议是OC中比较显著的俩个特点.分类的功能主要是实现类的扩展,协议则常常用在代理的实现上. 1.分类的声明 在分类的接口文件中,只允许新增方法,不能新增变量.语法形式: @interface 类名 (分类名) 新增的方法声明: @end 2.定义方法 在分类的实现文件中,对新增方法进行定义,语法如下: @implementation 类名 (分类名) 新增的方法的定义{ 语句: } @end 3.方法调用 分类的方法声明和定义之后,就可以进行调用了,语法如下: [对象名 新增方法名] 实例

iOS开发OC基础:OC中的分类(类目)

//分类,category,(类目) //为没有源代码的类添加方法 //一定要注意,只能添加方法,不能添加实例变量 /** *  分类 类的定义也是分为接口部分和实现部分 接口部分:以@interface开头 + 类名 后跟小括号,小括号内填写的是分类名 @end结束 在@interface 与@end 之间添加方法. */ //分类为原类添加的方法,就相当于原类具有该方法,可以正常调用 因为涉及到几个分类的创建,所以就直接上传代码了,其实代码也不多,只是怕大家在建立分类的时候会混淆,所以直接把

黑马程序员---OC基础7【ARC概念】【ARC对象内存管理】【分类Category】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [ARC概念]   1.指针的分类 1)强指针,默认的情况下,所有的指针都是强指针,关键字strong: 2)弱指针,_ _weak关键字修饰符的指针 2.ARC概念 自动引用计数 永远不要写retain和release.autorelease三个关键字 编译器会在编译的时候自动插入retain和release.autorelease, 是一个编译器的特性:“垃圾回收”是运行时的特性 3.ARC工