1

自从我将设备升级到 iOS7 后,我收到了很多警告

2013-10-29 15:20:16.592 App Name[3820:60b] Received memory warning.
2013-10-29 15:20:16.695 App Name[3820:60b] Received memory warning.
2013-10-29 15:20:22.711 App Name[3820:60b] Received memory warning.

然后我的应用程序崩溃

由于内存压力而终止

似乎是导致错误的背景图像:

- (void)viewDidLoad{
  [super viewDidLoad];
     //This will cause problems if I uncomment
    //self.view.backgroundColor = [UIColor colorWithPatternImage:
    //                            [UIImage imageNamed:@"background.png"]];
  }

奇怪的是它不会发生在模拟器上,只会发生在设备上。

4

1 回答 1

0

在较小/较旧的设备上加载大图像并不顺利。您应该为使应用程序可用的设备/分辨率命名图像,并在运行时加载适当的图像。iOS 会为您处理分辨率(如果您遵循命名标准),但对于一般图像,您需要自己处理平台部分。为此,请使用[[UIDevice currentDevice] userInterfaceIdiom]和的组合[UIScreen mainScreen].bounds

例如(在最基本的层面上,不区分 iPhone 屏幕尺寸):

background_iPhone.png
background_iPhone@2x.png
background_iPad.png
background_iPad@2x.png

此外,如果您可以使用磁贴作为应用程序的背景,请执行此操作。这是指定图像的最有效方式,SDK 将为您平铺。

于 2013-10-29T20:58:23.970 回答