NSString
和-substringWithRange:
这样的 -rangeOfString:options:range:
方法声明:
重要提示:如果aRange的任何部分所在,则引发NSRangeException 超出字符串的末尾。
在我看来,range(string.length,0)超出字符串的结尾。但是,[string substringWithRange:NSMakeRange(string.length, 0)]
不会引发NSRangeException
,但会返回一个空字符串。所以我不确定(string.length,0)是否是有效范围。
相比之下,[string substringWithRange:NSMakeRange(string.length + 1, 0)]
和[string substringWithRange:NSMakeRange(string.length, 1)]
都会引发NSRangeException。但它们非常明显地超越了结束,而(string.length,0)似乎是一个关键点。
答案 0 :(得分:5)
这可能是语义问题,但我会说(长度为0)在字符串的末尾,而不是超出它。当然(长度,1)将超出终点。
答案 1 :(得分:2)
您可以将范围内的0
长度(在字符串的上下文中)视为光标的位置,如果它类似于文本字段或文本视图。因此,(string.length, 0)
的范围相当于将文本光标位置设置在字符串的最后。