gpt4 book ai didi

iphone - UIFont fontWithName : residing on heap and never destroyed

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:09:35 27 4
gpt4 key购买 nike

NSMutableArray *fontsDetails=[[NSMutableArray alloc] init];
[fontsDetails addObject:[UIFont systemFontOfSize:28]];

NSArray *fontFamilies = [UIFont familyNames];

for (int i = 0; i < [fontFamilies count]; i++)
{
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
@autoreleasepool {
for (NSString *fontName in fontNames) {
[fontsDetails addObject:[UIFont fontWithName:fontName size:28]];
}
}


}

我在 Controller 的 viewDidLoad 中使用这段代码,有了这段代码,第一次和第二次运行之间的堆射击差异增加了 5mb,并且永远不会下降。 (随后的堆射击差异较低)。我在堆射击的回溯中找到 [UIFont fontWithName:],我运行了泄漏分析器并且没有泄漏。所有加载的字体都保存在堆中,永远不会被破坏。请帮我解决这个问题。

最佳答案

更有可能的是,它是系统中的缓存,卡在 UIFont 上,期望它会被再次使用。

鉴于它只增长一次,就不会再增长,所以它不是泄漏。

如果您在分配工具中使用引用事件跟踪器,您可以看到保留字体的内容。我敢打赌,您会在 UIFont 机器的某个地方找到一两个额外的保留。

关于iphone - UIFont fontWithName : residing on heap and never destroyed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17550556/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com