所以我正在尝试更改NSMutableAttributedString的颜色,但是当我尝试添加多个范围时,我一直遇到一个超出范围的异常错误(见下文)。另一方面,如果我只做0到totalLength-1的单一范围,则没有问题。我不知道为什么会这样。
我的代码如下:
NSString *testString = @"This is my test string for this example";
NSMutableAttributedString *attribString = [[NSMutableAttributedString alloc] initWithString:testString];
int totalLength = [playerTurnString length];
[playerTurnString addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor] range:NSMakeRange(0, 11)];
[playerTurnString addAttribute:NSForegroundColorAttributeName
value:[UIColor blueColor] range:NSMakeRange(12, totalLength-1)];
答案 0 :(得分:3)
NSRange
是一个位置和长度,所以当你这样做时
NSMakeRange(12,totalLength-1)
您的长度太长,因此超出了字符串的范围。您正尝试将其用作起点和终点位置,但这不是它的工作原理。