Schritt für Schritt - Entwickeln für OS X und iOS
Schritt für Schritt - Entwickeln für OS X und iOS
NSRange, Teil 2

Objective-C hat leider nicht die Methoden zur Manipulation von Zeichenketten, die Sie vielleicht aus anderen Programmiersprachen kennen. Doch mit ein wenig Geschick und mit Einsatz von NSRange kann man viele der fehlenden Funktionalität ersetzten.


contains
- prüft ob ein Text in einem anderen Text enthalten ist

Methode:
- (bool)NSStringContains:(NSString *)aString contains:(NSString *)bString
{
    NSRange theRange = [aString rangeOfString:bStringoptions:NSCaseInsensitiveSearch];
    if(theRange.length > 0)
    {
        return true;
    }
        return false;
}
Beispiel Aufruf:
bool b = [self NSStringContains:@"Guten Morgen Entwickler!" contains:@"morgen"];

left

- Zeichenkette vom Anfang eines Textes mit der angebenden Anzahl der Zeichen

Methode:
- (NSString *)NSStringLeft:(NSString *)aString characters:(int)count
{
    NSRange theRange = NSMakeRange(
0, count);
    return [aString substringWithRange:theRange];
}
Beispiel Aufruf:
NSString *myText = @"Hallo Entwickler";
myText = [
self NSStringLeft:myText characters:3];

right
- Zeichenkette vom Ende eines Textes mit der angebenden Anzahl der Zeichen

Methode:
- (NSString *)NSStringRight:(NSString *)aString characters:(int)count
{
    NSRange theRange = NSMakeRange([aString length] - count, count);
    return [aString substringWithRange:theRange];
}
Beispiel Aufruf:
NSString *myText = @"Hallo Entwickler";
myText = [
self NSStringRight:myText characters:5];

mid
- Zeichenfolge aus einem Text von angegebenen Position und Anzahl der Zeichen

Methode:
- (NSString *)NSStringMid:(NSString *)aString start:(int)aStart
     characters:(
int)count
{
    NSRange theRange = NSMakeRange(aStart,count);
    return [aString substringWithRange:theRange];
}
Beispiel Aufruf:
NSString *myText = @"Hallo Entwickler";
myText = [
self NSStringMid:myText start:3characters:5];

find oder indexOf
- Gibt die erste Position eines Textes in einem anderen Zeichenfolge zurück. Rückgabewert ist -1 wenn der Text nicht vorhanden ist.

Methode:
- (int)NSStringFind:(NSString *)aString find:(NSString *)bString
{
    NSRange theRange = [aString rangeOfString:bStringoptions:NSCaseInsensitiveSearch];
    if(theRange.length > 0)
    {
        return theRange.location;
    }
        return -1;
}
Beispiel Aufruf:
NSString *myText = @"Hallo Entwickler";
NSString *myFindText =
@"ent";
int i = [self NSStringFind:myText find:myFindText];

lastIndexOf
- Gibt die letzte Position eines Textes in einem anderen Zeichenfolge zurück. Rückgabewert ist -1 wenn der Text nicht vorhanden ist.

Methode:
- (int)NSStringLastIndexOf:(NSString *)aString find:(NSString *)bString
{
    NSRange theRange = [aString rangeOfString:bString options:NSCaseInsensitiveSearch|      NSBackwardsSearch];
    if(theRange.length > 0)
    {
        return theRange.location;
    }
        return -1;
}
Beispiel Aufruf:
NSString *myText = @"Hallo Entwickler";
NSString *myFindText =
@"e";
int i = [selfNSStringLastIndexOf:myText find:myFindText];