次のコードで、出力される拡張範囲が "location: 1, length: 1" である理由がわかりません。範囲の長さが 0 から 1 に拡張されたのはなぜですか?
NSString * text = @"abc";
NSRange range = NSMakeRange(1, 0);
NSRange extendedRange = [text rangeOfComposedCharacterSequencesForRange:range];
NSLog(@"extended range: location %d, length : %d ",extendedRange.location,extendedRange.length);
ドキュメントによると、この結果は次のようになります。
範囲内の構成された文字シーケンスを含むレシーバー内の範囲。
次の議論で
This method provides a convenient way to grow a range to include all composed character sequences it overlaps.
しかし、テキスト @"abc" には合成文字が含まれていないため、結果は変更されていない同じ範囲であると思われます。とにかく、長さ 0 の範囲はどの文字とも重ならないでしょう。
これは私にはバグのように見えますが、何かを見落としている可能性があります。それは正常ですか?