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這個代碼,這個代碼由5MB的第一和第二輪之間增加出手差別堆從未摧毀,從來沒有下來。 (隨後的堆積差異較小)。我在堆鏡頭的回溯中發現[UIFont fontWithName:],我運行了泄漏剖析器,並且沒有泄漏。所有加載的字體都保存在堆中,永遠不會被銷燬。請幫我解決這個問題。UIFont fontWithName:居住在堆和
這可能只是一個優化,你永遠不知道這些類是如何實現的,他們可能會處理一種緩存來重用字體。 –
在內存不足警告情況下,系統是否會釋放此內存? – pradeepa
我真的不知道,很難說,我不知道框架是如何實現的。蘋果工程師可能會知道它。 –