NSString durch categories um lastIndexOf erweitern
In anderen Programmiersprachen ist die Funktion lastIndexOf zum suchen nach dem Index eines Strings vom Ende an bekannt.
Objective-C bietet uns mit
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask
die gleiche Funktionalität.
Durch sogenannte “categories” können wir NSString selber um eine einfacher lesbare lastIndexOf Funktion erweitern.
Datei: NSString+lastIndexOf.h
@interface NSString (lastIndexOf) - (int) lastIndexOf:(NSString*)aString; @end
Datei: NSString+lastIndexOf.m
#import "NSString+lastIndexOf.h" @implementation NSString (lastIndexOf) - (int) lastIndexOf:(NSString*)aString { NSRange r = [self rangeOfString:aString options:NSBackwardsSearch]; if(r.location == NSNotFound) { return -1; } else { return r.location; } } @end
Um die neue Funktion nutzen zu können muss nur die Header-Datei “NSString+lastIndexOf.h” importiert werden:
#import "NSString+lastIndexOf.h" int x = [aString lastIndexOf:@"x"];