您的位置:首页 > 其它

含软连字符的字符串计算显示长度的问题

2014-04-09 10:29 267 查看



另一个问题是群里碰到的一个问题。当字符串为软连字符划线字符开头一些组合时,计算长度时会出现负无穷大(
-inf
)。如下面代码:

NSString *string = @"\u00AD\u0336\u00AD\u0336测试";
CGSize size = [string sizeWithFont:[UIFont systemFontOfSize:14]];
NSLog(@"%@",NSStringFromCGSize(size));


输出是:

2014-04-02 11:52:46.290 Test[3499:907] {-inf, 18}


而我们经常会根据计算出的文字大小来布局视图,如果你遇到这些字符串,而且没有对
-inf
进行特殊处理的话,很有可能App就运行异常了。现在App有很多用户自行输入内容,如评论,信息等,这些很容易让一些恶意用户输入并上传这些bug文本,那么你的App就很容易异常了,所以还是有必要进行一些特殊处理的。这些特殊的字符串一般不会由本地App产生,而是用户产生,建议在服务器端处理。本地简单的处理方法就是Trim一下:

string = [string stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithRange:NSMakeRange(0xAD, 1)]];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐