我使用分配工具檢查了我的應用程序,發現此處的代碼導致了我的分配問題。該方法返回填充了通過的屬性字符串的平方區域的建議高度;我需要這個,以便計算我需要多大的空間來繪製文本,然後生成書頁:核心文本內存分配問題
- (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的內存分配..我認爲釋放frame setter可能夠了,我錯了嗎?
您是否在模擬器上或實際設備上測試了您的內存分配,因爲在模擬器上由Instruments提供的數據不可靠。 – danypata
我在iPhone上測試過。 – Lolloz89