web-dev-qa-db-ja.com

NSMutableRLEArray objectAtIndex:effectiveRange ::範囲外

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)];
14
Shmidt

NSMakeRange(i、j)は、位置iと長さjの範囲を作成します。

たとえば、文字列のサイズが10で、範囲が5から始まる場合、次のようにします。

NSMakeRange(5,10)

範囲は5から15なので、文字列から外れます。

試してください:

NSMakeRange(newClock.length-3,3)];
40
Antonio MG