为整个NSString长度生成一个NSRange的快捷方式?
有没有简短的方式来说“整个string”,而不是input:
NSMakeRange(0, myString.length)]
这种代码中最长的部分是最不重要的(因为我通常希望在整个string中search/replace)似乎很愚蠢。
[myString replaceOccurrencesOfString:@"replace_me" withString:replacementString options:NSCaseInsensitiveSearch range:NSMakeRange(0, myString.length)];
function? 分类方法?
- (NSRange)fullRange { return (NSRange){0, [self length]}; }
[myString replaceOccurrencesOfString:@"replace_me" withString:replacementString options:NSCaseInsensitiveSearch range:[myString fullRange]];
从来没听说过。 但是你可以轻松地添加一个NSString
类别:
@interface NSString (MyRangeExtensions) - (NSRange)fullRange @end @implementation NSString (MyRangeExtensions) - (NSRange)fullRange { return (NSRange){0, self.length}; }
这并不短,但是…哦
NSRange range = [str rangeOfString:str];
迅速
NSMakeRange(0, str.length)
或作为extension
:
extension NSString { func fullrange() -> NSRange { return NSMakeRange(0, self.length) } }
Swift 2:
extension String { var fullRange:Range<String.Index> { return startIndex..<endIndex } }
如在
let swiftRange = "abc".fullRange
要么
let nsRange = "abc".fullRange.toRange