在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
因为Swift的String没有length方法,所以获取字符串长度是用count,然而OC的NSString用的则是.length获取长度,在有emoji的情况下,长度取的就不对,导致出现上图路径没有标蓝的情况。 附上苹果的技术文档: NSString: String: Swift的关于计算长度的资料,里面专门拿emoji出来做了一个例子.png 我的理解是:NSString是由UTF-16单元构成,.length方法返回的是基于UTF-16的长度。Swift的count返回的只是Unicode字符个数,而Swift有专门的utf16.count是对应NSString的.length方法。而addAttribute里面的Rang对应的应该就是UTF-16的长度,即标蓝文件获取长度应该用下面的方法: NSMakeRange(0, pathStr.utf16.count) |
请发表评论