为整个NSString长度生成一个NSRange的快捷方式?

有没有简短的方式来说“整个string”,而不是input:

NSMakeRange(0, myString.length)] 

这种代码中最长的部分是最不重要的(因为我通常希望在整个string中search/replace)似乎很愚蠢。

 [myString replaceOccurrencesOfString:@"replace_me" withString:replacementString options:NSCaseInsensitiveSearch range:NSMakeRange(0, myString.length)]; 

5 Solutions collect form web for “为整个NSString长度生成一个NSRange的快捷方式?”

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