iOS中NSString的封装

因为本人原来是学习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

要实现代码可以私信我哟!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容