2

所以我正在尝试更改 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)];
4

1 回答 1

3

AnNSRange是一个位置和一个长度,所以当你这样做时

NSMakeRange(12, totalLength-1)

您的长度 12 太长,因此超出了字符串的范围。您正在尝试将其用作开始和结束位置,但这不是它的工作方式。

于 2013-07-02T23:51:35.443 回答