我试图对字符串中的每个字符执行操作。但我一直收到一个没有意义的错误:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFString substringWithRange:]: Range {2, 3} out of bounds; string length 4'
{2,3}怎么出界? 谢谢!
答案 0 :(得分:0)
NSRange不是{start,end},它是{start,length}。范围{2,3}包括字符串的字符2,3和4 ..长度为4的字符仅包含索引0,1,2和3的字符。
如果您正在迭代单字符子字符串,则可能需要尝试使用enumerateSubstringsInRange:options:usingBlock:
选项NSStringEnumerationByComposedCharacterSequences
,而不是自己制作范围。即使对于组合序列和高unicode代理对(例如表情符号)的可变大小的“字符”,这也会给你正确的行为。