入力するのではなく、「文字列全体」と言う簡単な方法はありますか?
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};
}
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
Swift 4 +、NSRegularExpression
およびNSAttributedString
に便利
extension String {
var nsRange : NSRange {
return NSRange(self.startIndex..., in: self)
}
}