从一个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;
        }
    }
}

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

你可能感兴趣的:(从一个NSString中获取指定字节数的子串(注:不是字符数))