[英]Shortcut to generate an NSRange for entire length of NSString?
有沒有一種簡短的方法可以說“整個字符串”而不是輸入:
NSMakeRange(0, myString.length)]
這種代碼中最長的部分是最不重要的,這似乎很愚蠢(因為我通常想在整個字符串中搜索/替換)......
[myString replaceOccurrencesOfString:@"replace_me"
withString:replacementString
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, myString.length)];
功能? 分類方法?
- (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};
}
Swift 4+ ,對NSRegularExpression
和NSAttributedString
有用
extension String {
var nsRange : NSRange {
return NSRange(self.startIndex..., in: self)
}
func range(from nsRange: NSRange) -> Range<String.Index>? {
return Range(nsRange, in: self)
}
}
NSMakeRange(0, str.length)
或作為extension
:
extension NSString {
func fullrange() -> NSRange {
return NSMakeRange(0, self.length)
}
}
這不是更短,而是......哦,好吧
NSRange range = [str rangeOfString:str];
extension String {
var fullRange:Range<String.Index> { return startIndex..<endIndex }
}
如
let swiftRange = "abc".fullRange
要么
let nsRange = "abc".fullRange.toRange
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.