How to count the number of lines in an Objective-C string (NSString)?

cocoa, enumeration, newline, objective-c

Solution

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)

Problem

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?

Original source