我用分配工具检查了我的应用程序,发现这里的代码导致了分配问题。该方法返回填充了传递的属性字符串的平方区域的建议高度;我需要这个来计算我需要多少空间来绘制该文本然后生成书页:
- (CGFloat)boundingHeightForWidth:(CGFloat)inWidth ForAttributedString:(NSAttributedString *)attributedString
{
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFMutableAttributedStringRef)attributedString);
CGSize suggestedSize = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0, 0), NULL, CGSizeMake(inWidth, 10000), NULL);
CFRelease(framesetter);
return suggestedSize.height ;
}
由于我在流程中多次调用此方法,我想知道这是如何导致高达 7MB 的内存分配的。我认为释放帧设置器就足够了,我错了吗?