0
UIGraphicsBeginImageContext(screenRect.size);

如果我使用它,则不会发生内存压力。但是如果我使用下线内存压力会发生。

UIGraphicsBeginImageContextWithOptions(screenRect.size, NO, 4.0f);

我不知道为什么会这样。任何人告诉我如何处理这个?

4

1 回答 1

0

我不确定您所说的“内存压力”是什么意思,我认为您的意思是内存警告/崩溃。原因在于第一个示例:

UIGraphicsBeginImageContext(screenRect.size);

您正在创建当前屏幕大小的上下文,当您使用时:

UIGraphicsBeginImageContextWithOptions(screenRect.size, NO, 4.0f);

您正在创建一个 4 倍于当前屏幕大小的上下文,这需要更多内存,如果设备没有足够的内存来分配,那么就会发生不好的事情。

您可以使用 Instruments 来查看内存分配情况。产品 -> 配置文件 (⌘I) 并从模板中选择“分配”:

工具 - 分配

于 2013-11-11T20:32:28.047 回答