我不明白为什么在下面的代码中,将打印的扩展范围是 “location:1,length:1”。为什么范围长度从0延伸到1?rangeOfComposedCharacterSequencesForRange将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的范围不会与任何字符重叠。
这看起来像一个错误,但我可能错过了一些东西。这是正常的吗?
要链接到的文档不是rangeOfComposedCharacterSequencesForRange中的一个。你认为这是相互联系的吗? – madewulf 2013-03-01 11:07:48
链接适用于我,所有的方式,如果你去NSString的文档,然后搜索'rangeOfComposedCharacterSequencesForRange:'你会发现它,你也可以从组织者 – tkanzakic 2013-03-01 11:15:11
做到这一点我看不到一个长度范围0可以重叠任何东西。它对我来说听起来像是一个bug。 – madewulf 2013-03-01 11:32:19