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
Swift 4:
Apple recommends this method:
See the article. They also explain how to count lines of wrapped text.
If you want to take into account the width of the text, you can do this with TextKit (iOS7+):