Есть еще один вариант метода rangeOfString:
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange
Это позволяет вам указать диапазон для поиска внутри, чтобы вы могли в цикле найти каждый диапазон, а затем исключить его из диапазона поиска и повторить попытку, пока не будет найдено больше совпадений.
В зависимости от того, что вы пытаетесь сделать, вам может повезти с этим:
NSArray *components = [string componentsSeparatedByString:@" - "];
Это разделит вашу строку на каждую часть, которая была отделена @ "-", и вернет их в массиве - вы можете получить последний, используя [компоненты lastObject];
И еще один вариант - использовать NSScanner, который предназначен для зацикливания строки, захвата токенов по ходу работы.