适合java基础同学迅速了解OC
- #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>多个分类中都实现了相同的方法,按照编译顺序,后编译的会覆盖先编译的分类中的方法
-
- */
复制代码
|
|