不変部分(「ボーナススコア:(+ 7%)」)と変化部分(「247,890」など)に別々のテキストオブジェクトがあります。別々なので、不変部分に数字を表示するスペースを残したいと思います。
私が最初に試したのは:
NSString* numberString = @"247,890";
NSString* blankScore = [@"" stringByPaddingToLength:[numberString length] withString: @" " startingAtIndex:0];
NSString* baseDisplay = [NSString stringWithFormat:@"BONUS SCORE: %@ (+7%%)", blankScore];
'blankScore'は正しい長さでしたが、結果のbaseDisplayは、blankScoreがある場所の周囲のスペースをトリミングしているように見えたため、表示される数値に対してスペースが小さすぎました。
次に、blankScoreを作成する別の方法を試しました。
NSString* blankScore = [numberString stringByReplacingCharactersInRange:NSMakeRange(0, [numberString length]) withString:@" "];
しかし、これは長さ1のblankScoreを返しました。
これらのNSStringメソッドを正しく理解していませんか?ドキュメントを確認したところ、これらのメソッドの理解はそこに書かれていることと一致しているようですが、baseDisplayに正しい数のスペースを設定できない理由はまだわかりません。