从一个NSString中获取指定字节数的子串(注:不是字符数)

NSString 懂的人一看就知道,这是古老的iOS OC开发了.....

例如,在微信分享时,微信对分享内容有长度的限制:
标题:512字节
正文:1024字节

注意:是字节,不是字符;

下面的算法可以解决这个问题;

/**
 如果sourceString的 字节数 超过limitCount,则按照limitCount截断并返回,
 否则,直接返回sourceString
 */
+ (NSString *)limitString:(NSString *)sourceString bytesLimit:(NSInteger)limitCount {
    if(STR_IS_NIL(sourceString)){
        return sourceString;
    }else{
        NSData *data = [sourceString dataUsingEncoding:NSUTF8StringEncoding];
        if(data.length > limitCount){
            NSString *subString = [sourceString substringToIndex:sourceString.length - 1];
            return [StringTools limitString:subString bytesLimit:limitCount];
        }else{
            return sourceString;
        }
    }
}

因为使用递归,并且基本思想傻大笨粗,所以这个不是效率最高的方式,这个方法只能用于应急,如果谁有更好的算法,请友情提示我一下啊,先行谢过~

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

推荐阅读更多精彩内容