(string.length,0)是字符串的有效范围吗?

an0*_*an0 2 cocoa objective-c nsstring ios

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)似乎是一个关键点.

rma*_*ddy 5

这可能是语义问题,但我会说(长度,0)是字符串的末尾,而不是超出它.当然(长度,1)将超出结束.