Actually it is possible that truncated string is longer then original
string.
For example, original string:
```
hello
this is
very long
message here
and there
```
with maximumNumberOfLines=4, truncationAttributedString = ' ...' and
additionalTruncationMessage = 'read more'
will give
```
hello
this is
very long
message here ... read more
```
So `[attributedString attribute:attributeName atIndex:characterIndex
longestEffectiveRange:&range inRange:visibleRange]` will crash.