Comment compter le nombre de lignes en Objective-C string (NSString)?
Je veux compter les lignes dans un NSString en 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;
}
Est-il un moyen plus facile?
Vous devez vous connecter pour publier un commentaire.
bien, pas très efficace, mais agréable(ish) en regardant la façon dont est
Swift 4:
Apple recommande d'utiliser cette méthode:
Voir le l'article. Ils expliquent également comment calculer le nombre de lignes de texte enveloppé.
NSString *string = @"this is \nyour string\n"; NSInteger numberOfLines, index, stringLength = [string length]; for (index = 0, numberOfLines = 0; index < stringLength; numberOfLines++) index = NSMaxRange([string lineRangeForRange:NSMakeRange(index, 0)]); if([string hasSuffix:@"\n"] || [string hasSuffix:@"\r"]) numberOfLines += 1; if([string hasPrefix:@"\n"] || [string hasPrefix:@"\r"]) numberOfLines += 1; return numberOfLines;
Si vous voulez prendre en compte la largeur du texte, vous pouvez le faire avec TextKit (iOS7+):