I want to count the lines in an NSString in Objective-C.
NSInteger lineNum = 0;
NSString *string = @"abcde\nfghijk\nlmnopq\nrstu";
NSInteger length = [string length];
NSRange range = NSMakeRange(0, length);
while (range.location < length) {
range = [string lineRangeForRange:NSMakeRange(range.location, 0)];
range.location = NSMaxRange(range);
lineNum += 1;
}
Is there an easier way?
well, a not very efficient, but nice(ish) looking way is
NSString *string = @"abcde\nfghijk\nlmnopq\nrstu";
NSInteger length = [[string componentsSeparatedByCharactersInSet:
[NSCharacterSet newlineCharacterSet]] count];
Swift 4:
myString.components(separatedBy: .newlines)