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

#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>多个分类中都实现了相同的方法,按照编译顺序,后编译的会覆盖先编译的分类中的方法
	
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值