0

iOSアプリで発生したクラッシュを追跡しました。これは、viewWillAppearの前に呼び出されるwillAnimateRotationToInterfaceOrientationに関連しています。

2つのビューを持つアプリがあります。基本的に、view1が消えたら、viewWillAppearに再表示されたときに再初期化されると想定して、いくつかの配列を解放します。

ただし、view2で向きを変更してからview1に戻すと、view1がviewWillAppearを呼び出してすべてを再初期化する前に、willAnimateRotationToInterfaceOrientationが発生し、クラッシュが発生します。

ビューが表示され、すべてが再初期化されるまで、willAnimateRotationToInterfaceOrientationを遅らせる方法はありますか?

そうでない場合、私が見ることができる唯一の解決策は、willAnimateRotationToInterfaceOrientationを使用しないか(見苦しい向きの変更になります)、view1からview2に切り替えたときにデータを解放しないため、必要以上に多くのメモリが使用されます。

誰か私が何をすべきかについて何か考えがありますか?

4

1 に答える 1

1

次のような問題を回避するために、遅延読み込みスタイルのコードを使用できます。

NSArray* someData;


-(void)somefun1{

   if (!someData) {

      [self loadData];
   }

    //use your data
}

-(void)somefun2{

    if (!someData) {

    [self loadData];
    }

    //use your data

}

-(void)loadData{
    //some loading code
}

遅延読み込みスタイルのコードを使用すると、イベントの呼び出し順序を気にする必要はありません。

于 2010-12-20T05:13:44.347 に答える