искал лучший метод, чем мой, но вот еще один пример:
NSString *find = @"cake";
NSString *text = @"Cheesecake, apple cake, and cherry pie";
NSInteger strCount = [text length] - [[text stringByReplacingOccurrencesOfString:find withString:@""] length];
strCount /= [find length];
Я хотел бы знать, какой из них более эффективен.
И я сделал категорию NSString
для лучшего использования:
// NSString+CountString.m
@interface NSString (CountString)
- (NSInteger)countOccurencesOfString:(NSString*)searchString;
@end
@implementation NSString (CountString)
- (NSInteger)countOccurencesOfString:(NSString*)searchString {
NSInteger strCount = [self length] - [[self stringByReplacingOccurrencesOfString:searchString withString:@""] length];
return strCount / [searchString length];
}
@end
просто позвоните по этому номеру:
[text countOccurencesOfString:find];
Необязательно: вы можете изменить его для поиска без учета регистра, задав options: