Существует несколько простых реализаций, но у всех есть свои компромиссы. Например, Cocoa (но не Cocoa Touch) имеет функцию подсчета слов, запеченную в:
- (NSUInteger)wordCount {
return [[NSSpellChecker sharedSpellChecker] countWordsInString:self language:nil];
}
Также просто считать слова так же точно, как сканер, просто используя [[self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] count]
. Но я обнаружил, что производительность этого метода сильно ухудшается для более длинных строк.
Так что это зависит от компромиссов, которые вы хотите сделать. Я обнаружил, что самое быстрое - это просто пойти по прямой ICU . Если вы хотите самое простое, использование существующего кода, вероятно, проще, чем написание какого-либо кода вообще.