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 に答える