因为本人原来是学习JAVA出生,但是后来因为转行做iOS开发但是OC中的NSString里面的方法特别长本人一般写字符串都是来查文档但是我将NSString封装成简单的方法。特别是那个去掉前后多余的空格的方法,长得离谱。与之对应的别的语言,拿java 来说,对应的方法名叫 trim。在OC中例如下面代码:
[self.aa stringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]];其实我也明白 Objective-C这种长函数名的好处,就是能很清楚地了解当前的方法是干什么的。但是一些常用的方法,简单的方法名同样能表达清楚意思,并且更容易记住。长方法名的最大的问题是,代码写到一半得查文档,直接把思路打断了,所以我上周末花了一天时间把 Objective-C 的 NSString类给封装了一下,把相应的方法调用都换成与 Java 类似的了。这样我每次用的时候就不用写那么长又记不住的方法名了。
主要封装后的方法定义如下:
@interface NSString (Wrapper)
- (unichar) charAt:(int)index;
- (int) compareTo:(NSString*) anotherString;
- (int) compareToIgnoreCase:(NSString*) str;
- (BOOL) contains:(NSString*) str;
- (BOOL) startsWith:(NSString*)prefix;
- (BOOL) endsWith:(NSString*)suffix;
- (BOOL) equals:(NSString*) anotherString;
- (BOOL) equalsIgnoreCase:(NSString*) anotherString;
- (int) indexOfChar:(unichar)ch;
- (int) indexOfChar:(unichar)ch fromIndex:(int)index;
- (NSUInteger) indexOfString:(NSString*)str;
- (NSUInteger) indexOfString:(NSString*)strfromIndex:(int)index;
- (int) lastIndexOfChar:(unichar)ch;
- (int) lastIndexOfChar:(unichar)ch fromIndex:(int)index;
- (NSUInteger) lastIndexOfString:(NSString*)str;
- (NSUInteger) lastIndexOfString:(NSString*)strfromIndex:(int)index;
- (NSString *) substringFromIndex:(int)beginIndextoIndex:(int)endIndex;
- (NSString *) toLowerCase;
- (NSString *) toUpperCase;
- (NSString *) trim;
- (NSString *) replaceAll:(NSString*)originwith:(NSString*)replacement;
- (NSArray *) split:(NSString*) separator;
@end只需要拷贝我的文件:NSStringWrapper.h 和 NSStringWrapper.m到你自己的工程中即可。在使用的时候注意我修改了一点,我将查找不存在的返回值设置成了-1,这样和 java 语言保持一致,如果你想用NSNotFound 作为查找不存在时的结果,请修改文件 NSStringWrapper.m 顶部的宏定义:JavaNotFound即可,如下所示:
// 如果不喜欢可以将-1改成NSNotFound
#define JavaNotFound -1
要实现代码可以私信我哟!
网友评论