首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将NSMutableAttributedString划分为半类

将NSMutableAttributedString划分为半类
EN

Stack Overflow用户
提问于 2013-07-02 15:46:37
回答 1查看 532关注 0票数 0

我的分类有一些问题,把NSMutableAttributedString分割成一半--它在NSMakeRange(...)上崩溃了

代码语言:javascript
复制
#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_ssh36675:c07 *终止应用程序由于非正常异常'NSRangeException',原因:'NSConcreteMutableAttributedString attributedSubstringFromRange:越界‘* First

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-02 15:58:28

NSMakeRange的第二个参数表示length (从第一个参数中的开始索引中计算)。

所以你想要NSMakeRange([self length] / 2, ([self length] + 1) / 2)

顺便说一句,这种分割字符串的方法只有在字符串中没有组合字符序列或代理项对时才能正确工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17429996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档