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 に答える