一、 在不建立继承类的状况下实现对已有类的扩展。
二、 简化类的开发工做(当一个类须要多个程序员协同开发的时候,Category能够将同一个类根据用途分别放在不一样的源文件中,从而便于程序员独立开发相应的方法集合)。
三、将经常使用的相关的方法分组。
四、 在没有源代码的状况下能够用来修复BUG。设计模式
在项目中添加文件选着Category文件类型spa
NSString+EndWith.h.net
#import <Foundation/Foundation.h> @interface NSString (EndWith) -(BOOL)endWith:(NSString*)end; @end
NSString+EndWith.m设计
#import "NSString+EndWith.h" @implementation NSString (EndWith) -(BOOL)endWith:(NSString *)end{ NSString *selfEnd = [self substringFromIndex:[self length]-[end length]]; return [selfEnd isEqualToString:end]; } @end
main.m3d
#import <Foundation/Foundation.h> #import "NSString+EndWith.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSString * str = @"c:/Media/mp3/xxx.mp3"; NSLog(@"%d",[str endWith:@".mp3"]); } return 0; }