NSMutableRLEArray objectAtIndex:effectiveRange ::越界

时间:2013-10-13 11:28:59

标签: objective-c ios7 nsrange nsrangeexception

我尝试将属性分配给newClock字符串的3个最后字符,即@"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)];

1 个答案:

答案 0 :(得分:36)

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

例如,如果您的字符串大小为10且范围从5开始,则执行此操作:

NSMakeRange(5,10)

你的范围从5到15,所以超出你的字符串。

尝试:

NSMakeRange(newClock.length-3,3)];