我有NS长度的项目标题,长度为
我只想将N(N< X)复制到我的NSMutable字符串
我所尝试的是:
NSMutableString* title = [[NSMutableString alloc]initWithCapacity:10];//10 =N
[title appendString:itemTitle];
但遗憾的是,它按原样复制了所有NSString :(
有人可以帮我这个吗?
答案 0 :(得分:2)
NSMutableString *title = [NSMutableString stringWithString: [itemTitle substringToIndex: MIN(itemTitle.length, 10)]];
答案 1 :(得分:1)
NSMutableString
的容量是初始容量,而不是最终容量。当对象需要更多空间时,它会分配更多内存,忽略您传入的容量。
为了避免字符串太长,你可以在追加之前获得N
个字符的子字符串,或者在append方法完成后删除多余的字符:
NSMutableString* title = [[itemTitle substringWithRange:NSMakeRange(0, 10)] mutableCopy];
或
NSMutableString* title = [NSMutableString string];//10 =N
[title appendString:itemTitle];
[title deleteCharactersInRange:NSMakeRange(10, title.length)];
注意:在使用这两个代码段中的任何一个之前,您需要检查itemTitle
是否确实超过十个字符。