A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 愿得一人心1111 中级黑马   /  2015-8-17 21:49  /  472 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

01.#import <Foundation/Foundation.h>

02.

03.int compareCharIgnoreCase(char c1,char c2)

04.{        

05.        int flag = 0;

06.        if(c1==c2) flag=1;

07.        else if (c1>='A'&&c1<='Z')

08.                flag=(c1+'a'-'A'==c2);

09.        else if(c1>='a'&&c1<='z')

10.                flag=(c1+'A'-'a'==c2);

11.        

12.        return flag;

13.}

14.

15.@interface NSString (Equal) // 利用分类给系统自带类添加方法,()中的分类名一般用模块名称

16.

17.

18.-(BOOL)equalsIgnoreCase:(NSString *)str;

19.

20.@end

21.

22.@implementation NSString (Equal)

23.

24.

25.-(BOOL)equalsIgnoreCase:(NSString *)str

26.{

27.        BOOL b = 0;

28.        int selfLength=[self length];

29.        int strLength=[str length];

30.        int i;

31.        unichar c1,c2;

32.        if(b=(selfLength==strLength))

33.        {

34.                for(i=0;i<selfLength&&b;i++)

35.                {

36.                        c1=[self characterAtIndex:i];

37.                        c2=[str characterAtIndex:i];

38.                        b=compareCharIgnoreCase(c1,c2);

39.                }

40.        }

41.        

42.        return b;

43.}

44.@end

45.

46.

47.

48.

49.int main()

50.{

51.        NSString *str = @"1231EA21ee1123";

52.        NSLog(@"%d",[str equalsIgnoreCase:@"1231ea21EE1123"]);

53.        

54.        return 0 ;

55.}

56.

57.

58./*

59.

60.category:(不改变类的情况下,为类新增方法)

61.        1>分类只能增加方法(对象方法和类方法)

62.        2>分类可以访问类中成员

63.        3>调用方法优先查找分类,即分类方法跟类中相同时,会覆盖类中方法

64.        4>多个分类中都实现了相同的方法,按照编译顺序,后编译的会覆盖先编译的分类中的方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马