NSAttributedString错误。它附加了属性字典的描述

时间:2013-03-23 11:51:47

标签: ios objective-c nsattributedstring

我正在创建一个属性字符串并有条件地应用删除线。这是代码:

    NSMutableDictionary *attributes = [[NSMutableDictionary alloc] init];
    if (needsStrikeThrough) {
        [attributes setValue:[NSNumber numberWithInt:NSUnderlineStyleSingle] forKey:NSStrikethroughStyleAttributeName];
    } else {
        [attributes setValue:[NSNumber numberWithInt:NSUnderlineStyleNone] forKey:NSStrikethroughStyleAttributeName];
    }
    NSAttributedString *attString = [[NSAttributedString alloc] initWithString:participant.firstName attributes:attributes];
    NSLog(@"attString= %@", attString);
    NSLog(@"[attributes description]= %@", [attributes description]);

控制台中的输出是:

attributedParticipantName= Belinda{
    NSStrikethrough = 0;
 }
[attributes description]= {
    NSStrikethrough = 0;
}

因此字典的描述被附加到属性字符串。知道为什么吗?

1 个答案:

答案 0 :(得分:1)

这就是description NSAttributedString方法的实现方式。它旨在帮助您进行调试,以便您可以在(纯文本)控制台中检查字符串的属性。实际的字符串只是大括号之前的部分(“Belinda”)。要仅打印字符串而不使用任何属性,您可以记录attString.string