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]];
}
}
}
私はコントローラーのviewDidLoadでこのコードを使用しています。このコードでは、1回目と2回目の実行のヒープショットの差が5mb増加し、決して下がらない. (その後のヒープ ショットの差は小さくなります)。ヒープ ショットのバックトレースで [UIFont fontWithName:] を見つけました。リーク プロファイラーを実行しましたが、リークはありません。ロードされたすべてのフォントはヒープに保持され、破棄されることはありません。これを解決するのを手伝ってください。