2

我正在尝试创建一个空的NSMutableAttributedString

NSMutableAttributedString *aString = [[NSMutableAttributedString alloc] init];

代码编译得很好,但 Xcode 调试器告诉我@<variable is not an NSAttributedString>. 好奇,我尝试了不同的方法来创建它,包括initWithString:@"". 然后我决定看看我是否可以制作不可变的属性字符串:

NSAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"test"];

这工作得很好;调试器向我展示了一个属性字符串,其内容为“test”。然后我决定尝试以下kludge:

NSAttributedString *aString = [[NSAttributedString alloc] initWithString:@"test"];
NSMutableAttributedString *mString = [[NSMutableAttributedString alloc] initWithAttributedString:aString];

可悲的是,虽然aString创建得很好,但调试器报告它mString不是 NSAttributedString,就像以前一样。

我错过了什么?我已经查看了该站点上的其他问题,包括这个问题,但无法找到答案。我读过的所有内容都表明我对该类的初始用法是正确的。

谢谢。

4

1 回答 1

0

上面的问题让我重新审视了我的代码。似乎调试消息无关紧要;实际问题是什么(以及为什么什么都没有显示)是因为我在设置字符串的属性时使用了字体名称(NSString)而不是字体对象(NSFont)。

这是解决方案的链接: Why does [NSTextStorage setAttributedString] crash with NSMutableAttributedString?

于 2013-08-07T21:17:19.477 回答