1

我有一个滑块用于更改 UITextView 中文本的字体大小。Analyzer 和 Leaks 报告没有内存泄漏。但是,每次我通过移动滑块更改字体大小时,内存都会增加。最终,应用程序收到内存不足警告。代码是:

mainText.font = [UIFont systemFontOfSize:mainSlider.value];

如果我用 替换该代码mainText.font = [UIFont systemFontOfSize:40.0];,无论我移动滑块多少次,内存都会保持不变。我搜索了这个网站和许多其他网站,寻找有关可能的 UIFont 错误的信息。没有成功。我看到人们使用我正在使用的相同代码并且没有提到增加内存。请帮忙。

4

1 回答 1

1

可能有一个字体缓存以避免一遍又一遍地重新生成相同的字体(有点像 [UIImage imageNamed:@""])

它没有在文档中明确说明,但阅读

您不使用 alloc 和 init 方法创建 UIFont 对象。相反,您使用 UIFont 的类方法来查找和检索所需的字体对象。这些方法检查具有指定特征的现有字体对象,如果存在则返回它。否则,他们会根据所需的字体特征创建一个新的字体对象。

可以让人相信有一个缓存

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIFont_Class/Reference/Reference.html

另外,您所说的“内存不足警告”是什么?我认为这只是“内存警告级别= 1”,而不是由于内存不足而导致的应用程序崩溃?

于 2011-04-19T22:45:26.673 回答