Вы можете использовать componentsSeparatedByCharactersInSet:
, чтобы разбить строку, и NSCountedSet
будет считать слова для вас.
1) Разбить строку на слова, используя комбинацию знаков препинания, пробела и новой строки:
NSMutableCharacterSet *separators = [NSMutableCharacterSet punctuationCharacterSet];
[separators formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSArray *words = [myString componentsSeparatedByCharactersInSet:separators];
2) Подсчитайте вхождения слов (если вы хотите игнорировать заглавные буквы, вы можете сделать NSString *myString = [originalString lowercaseString];
перед разбиением строки на компоненты):
NSCountedSet *frequencies = [NSCountedSet setWithArray:words];
NSUInteger aWordCount = [frequencies countForObject:@"word"]);
Если вы хотите изменить сигнатуру вашего метода, вы можете просто вернуть подсчитанный набор.