ios objective-c nsstring nsrange

ios - ¿Atajo para generar un NSRange para toda la longitud de NSString?



objective-c (6)

Rápido

NSMakeRange(0, str.length)

o como una extension :

extension NSString { func fullrange() -> NSRange { return NSMakeRange(0, self.length) } }

¿Hay una forma breve de decir "cadena completa" en lugar de escribir a máquina?

NSMakeRange(0, myString.length)]

Parece una tontería que la parte más larga de este tipo de código sea la menos importante (porque generalmente quiero buscar / reemplazar dentro de una cadena entera) ...

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


Swift 2:

extension String { var fullRange:Range<String.Index> { return startIndex..<endIndex } }

como en

let swiftRange = "abc".fullRange

o

let nsRange = "abc".fullRange.toRange


¿Función? Método de la categoría?

- (NSRange)fullRange { return (NSRange){0, [self length]}; }

[myString replaceOccurrencesOfString:@"replace_me" withString:replacementString options:NSCaseInsensitiveSearch range:[myString fullRange]];


Esto no es más corto, pero ... bueno

NSRange range = [str rangeOfString:str];


No que yo sepa. Pero podría agregar fácilmente una categoría NSString :

@interface NSString (MyRangeExtensions) - (NSRange)fullRange @end @implementation NSString (MyRangeExtensions) - (NSRange)fullRange { return (NSRange){0, self.length}; }


Y cuando necesitas NSRange de String en Swift 4:

NSRange(string.startIndex.encodedOffset ..< string.endIndex.encodedOffset)