This should make you:
NSString *fileContents = [NSString stringWithContentsOfFile:file encoding:encoding error:&error];
NSUInteger newlineCount = [fileContents numberOfOccurrencesOfString:@"\n"];
@interface NSString ()
- (NSUInteger)numberOfOccurrencesOfString:(NSString *)aString;
- (NSUInteger)numberOfOccurrencesOfChar:(char)aChar;
@end
@implementation NSString ()
- (NSUInteger)numberOfOccurrencesOfString:(NSString *)aString {
NSRange range = [self rangeOfString:aString];
NSUInteger length = [self length];
NSUInteger count = 0;
while (range.location != NSNotFound) {
range = [self rangeOfString:aString options:0 range:NSMakeRange(range.location + range.length, length - range.location - range.length)];
count++;
}
return count;
}
- (NSUInteger)numberOfOccurrencesOfChar:(char)aChar {
const char *cString = [self cStringUsingEncoding:NSUTF8StringEncoding];
NSUInteger stringLength = strlen(cString);
NSUInteger count = 0;
for (int i = 0; i < stringLength; i++) {
if (cString[i] == aChar) {
count++;
}
}
return count;
}
@end
"numberOfOccurrencesOfString:" ,
"numberOfOccurrencesOfChar:" c- NSString char. ""
( ), , :
2486813, 78312 '\n'. ( OSX) ...
... ran [testString numberOfOccurrencesOfString: @ "\n" ] 100 : 19.35s
... ran [testString numberOfOccurrencesOfChar: '\n'] 100 : 6.91s
(: 2,2 Core 2 Duo MacBook Pro, )
[: ; .]