我有一个NSAttributedString s
和一个整数i
,我想一个函数,s
并i
返回具有(字符串化)的新NSAttributedString i
预先考虑s
.
它看起来像的组合-stringWithFormat:
,-initWithString:
和-insertAttributedString:
会做,但我有麻烦没有大量的回旋和临时变量的共同拼凑它.
更一般地说,指向理解NSAttributedString和NSMutableAttributedString的指南将是非常棒的.
我想我找到了另一种方式:
// convert it to a mutable string NSMutableAttributedString *newString; newString = [[NSMutableAttributedString alloc] initWithAttributedString:old]; // create string containing the number NSString *numberString = [NSString stringWithFormat:@"%i", i]; // append the number to the new string [newString replaceCharactersInRange:NSMakeRange([newString length] - 1, 0) withString:numberString];
我认为这是有效的,因为Apple的文档说:
- (void)replaceCharactersInRange:(NSRange)aRange withString:(NSString*)aString
新字符从aRange继承第一个替换字符的属性.如果aRange的长度为0,则新字符将继承aRange前面的字符的属性(如果有),否则继承aRange后面的字符.