假设我在NSString“foo”上传递了(位置:5,长度:50)的NSRange,该范围显然不存在。
例如,有没有办法说出[string rangeExists:NSRange]
,还是我们必须手动验证输入?
最佳答案
您必须编写自己的支票,但这很简单:
NSString *str = ... // some string
NSRange range = ... // some range to be used on str
if (range.location != NSNotFound && range.location + range.length <= str.length) {
// It's safe to use range on str
}
您可以在
NSString
上创建类别方法,以添加建议的rangeExists:
方法。只是:- (BOOL)rangeExists:(NSRange)range {
return range.location != NSNotFound && range.location + range.length <= self.length;
}
关于ios - 有没有一种简单的方法可以检查传递给NSString上的substringWithRange的NSRange是否存在(以免引起错误)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34190233/