18

我尝试将属性分配给字符串的最后 3 个字符newClock,即@"3:33:23".

但是在构造时出现错误NSRange

NSMutableAttributedString *mas = [[NSMutableAttributedString alloc]initWithString:newClock];
[mas addAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor],
NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:12]}
 range:NSMakeRange(newClock.length-3,newClock.length)];
4

1 回答 1

43

NSMakeRange(i, j) 创建一个位置为 i 长度为 j 的范围。

例如,如果您的字符串的大小是 10,而您的范围从 5 开始,那么您执行以下操作:

NSMakeRange(5,10)

您的范围从 5 到 15,因此超出了您的字符串范围。

尝试:

NSMakeRange(newClock.length-3,3)];
于 2013-10-13T11:33:36.247 回答