#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;
}
@end
int main()
{
NSString *str = @"1231EA21ee1123";
NSLog(@"%d",[str equalsIgnoreCase:@"1231ea21EE1123"]);
return 0 ;
}
/*
category:(不改变类的情况下,为类新增方法)
1>分类只能增加方法(对象方法和类方法)
2>分类可以访问类中成员
3>调用方法优先查找分类,即分类方法跟类中相同时,会覆盖类中方法
4>多个分类中都实现了相同的方法,按照编译顺序,后编译的会覆盖先编译的分类中的方法
*/
OC学习笔记05--分类的使用
最新推荐文章于 2024-07-31 23:02:39 发布