例如,以下代码存储安全吗?
NSMutableAttributedString *str = ...;
CTFontRef aFont = CTFontCreateWithName((CFStringRef)fontName, size, NULL);
[str addAttribute:(NSString*)kCTFontAttributeName value:(id)aFont range:range];
CFRelease(aFont);
另外,CTFontCreateWithName可以有效地多次调用吗?还是应该花点力气才能为相同的字体/大小缓存CTFontRef?
最佳答案
我相信将字体对象添加为属性后释放它是安全的。我已经在自己的Core Text代码中做到了这一点,从没有任何问题。
至于缓存,如果字体对象将被多次使用而不是将其释放并重新创建多次,则保留一个字体对象是有意义的。虽然,这可能是预先优化的,所以我现在还不会做任何有意识的努力。使用您当前的代码分析它,并确定是否值得花费额外的微秒时间。
关于iphone - NSMutableAttributedString addAttribute方法是否保留传入的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5042473/