假设我在NSString"foo"上传递NSRange(位置:5,长度:50),该范围显然不存在.
有没有办法说[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; }