NSMutableAttributedString addAttribute方法是否保留传入的值?

时间:2011-02-18 14:28:45

标签: iphone cocoa-touch ios core-text

例如以下代码存储器是否安全?

NSMutableAttributedString *str = ...;

CTFontRef aFont = CTFontCreateWithName((CFStringRef)fontName, size, NULL);
[str addAttribute:(NSString*)kCTFontAttributeName value:(id)aFont range:range];
CFRelease(aFont);

另外,CTFontCreateWithName是多次调用有效还是应该做一些努力来缓存CTFontRef的相同字体/大小?

1 个答案:

答案 0 :(得分:1)

我认为将字体对象添加为属性后释放它是安全的。我已经在我自己的核心文本代码中完成了这项工作,并且没有任何问题。

至于缓存,如果它将被多次使用而不是释放它并重新创建它多次,那么保持字体对象是有意义的。虽然,这可能是预先优化的,所以我不会做任何有意识的努力。使用您当前的代码对其进行分析,并确定额外的微秒是否值得工作。