黑马程序员技术交流社区

标题: 迅速了解oc [打印本页]

作者: 愿得一人心1111    时间: 2015-8-17 21:49
标题: 迅速了解oc
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>多个分类中都实现了相同的方法,按照编译顺序,后编译的会覆盖先编译的分类中的方法





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2