[Obj-c]匹配字段&NSArray里的Null问题&消除HTML转义字符

首先是监测字段匹配,假设要监测字符串string里是否含”a”这个字符:

if ([string rangeOfString:@"a"].location != NSNotFound) {
//do something
}

当NSArray为空或者里面某项为null的时候,在TableView或者其他什么界面经常会出现崩溃的问题。
解决方法:检测是否为空。但是普通的if (array != nil)是没用的,得这样操作:

if (array != [NSNull null]) {
//array not empty
}

尽管可能编译时会有警告…不过工作是正常的,至少程序不会再崩溃了。

最后,HTML输出的时候经常会连比如”&”或者空格之类的都转换成了“&”或者“ ”这样的字符。
解决方法:手动转换回来。
加入以下代码:(为了防止被转换,咱已经将英文标点”;”更换成了全角的“;”,使用前请先手动更换回来)

-(NSString *)htmlEntityDecode:(NSString *)string{
string = [string stringByReplacingOccurrencesOfString:@"";" withString:@"\""];
string = [string stringByReplacingOccurrencesOfString:@"'" withString:@"'"];
string = [string stringByReplacingOccurrencesOfString:@"&;" withString:@"&"];
string = [string stringByReplacingOccurrencesOfString:@"<;" withString:@"<"]; string = [string stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];
string = [string stringByReplacingOccurrencesOfString:@" ;" withString:@" "];
return string;
}

然后这么用:
string = [self htmlEntityDecode:string];
得到的string就是正常的了~

2 thoughts on “[Obj-c]匹配字段&NSArray里的Null问题&消除HTML转义字符

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

:b1 :b2 :b3 :b4 :b5 :b6 more »

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).

This site uses Akismet to reduce spam. Learn how your comment data is processed.