OC学习笔记05--分类的使用

来源:互联网 发布:visual foxpro是编程吗 编辑:程序博客网 时间:2024/05/25 01:35
#import <Foundation/Foundation.h>int compareCharIgnoreCase(char c1,char c2){int flag = 0;if(c1==c2) flag=1;else if (c1>='A'&&c1<='Z')flag=(c1+'a'-'A'==c2);else if(c1>='a'&&c1<='z')flag=(c1+'A'-'a'==c2);return flag;}@interface NSString (Equal)  // 利用分类给系统自带类添加方法,()中的分类名一般用模块名称-(BOOL)equalsIgnoreCase:(NSString *)str;@end@implementation NSString (Equal)-(BOOL)equalsIgnoreCase:(NSString *)str{BOOL b = 0;int selfLength=[self length];int strLength=[str length];int i;unichar c1,c2;if(b=(selfLength==strLength)){for(i=0;i<selfLength&&b;i++){c1=[self characterAtIndex:i];c2=[str characterAtIndex:i];b=compareCharIgnoreCase(c1,c2);}}return b;}@endint main(){NSString *str = @"1231EA21ee1123";NSLog(@"%d",[str equalsIgnoreCase:@"1231ea21EE1123"]);return 0 ;}/*category:(不改变类的情况下,为类新增方法)1>分类只能增加方法(对象方法和类方法)2>分类可以访问类中成员3>调用方法优先查找分类,即分类方法跟类中相同时,会覆盖类中方法4>多个分类中都实现了相同的方法,按照编译顺序,后编译的会覆盖先编译的分类中的方法*/

0 0