у меня возникли некоторые проблемы с моей категории для расщеплении NSMutableAttributedString пополам он падает на NSMakeRange(...)
разделить NSMutableAttributedString пополам категории
#import <Foundation/Foundation.h>
@interface NSMutableAttributedString (StringSplit)
- (NSMutableAttributedString *)lastHalfLinesOfAttributedString;
@end
#import "NSAttributedString+StringSplit.h"
@implementation NSMutableAttributedString (StringSplit)
- (NSMutableAttributedString *)lastHalfLinesOfAttributedString
{
NSLog(@"lastHalfLinesOfAttributedString with length:%d from index: %d", [self length], [self length]/2);
NSMutableAttributedString *result = [[NSMutableAttributedString alloc] init];
[result insertAttributedString:[self attributedSubstringFromRange:NSMakeRange([self length]/2, [self length]-1)] atIndex:0];
return result;
}
@end
lastHalfLinesOfAttributedString с длиной: 1020 из индекса: 510 2013-07- 02 17: 43: 16,209 hackers_ssh [36675: c07] * Нагрузочный приложение из-за для неперехваченного исключения 'NSRangeException', причина: 'NSConcreteMutableAttributedString attributedSubstringFromRange :: Нет из оценки' * Первого
Существует опасность только в том случае, если существует такой символ/пара, охватывающий индекс '[self length]/2'. Такие символы/пары где-нибудь еще только рискуют, что две половины не будут иметь одинаковую длину. – rmaddy
@rmaddy Да, конечно, нет никакого вреда, если не разбивать пару. Спасибо, rmaddy, за это ясно. –