自从我将设备升级到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"]];
}
奇怪的是,它不会发生在模拟器上,只发生在设备上。
答案 0 :(得分:0)
在较小/较旧的设备上加载大图像并不顺利。您应该为要使应用程序可用的设备/分辨率命名图像,并在运行时加载适当的图像。 iOS会为您处理分辨率(如果您遵循命名标准),但对于一般图像,您需要自己处理平台部分。为此,请使用[[UIDevice currentDevice] userInterfaceIdiom]
和[UIScreen mainScreen].bounds
的组合。
例如(在最基本的级别,不区分iPhone屏幕尺寸):
background_iPhone.png
background_iPhone@2x.png
background_iPad.png
background_iPad@2x.png
此外,如果您可以使用磁贴作为应用的背景,请执行此操作。这是指定图像的最有效方式,SDK将为您平铺图像。