1

TouchDrawViewを含む クラスがありますNSMutableArray *completeLines;。ここで、アプリケーションが終了したら、この配列をファイルに保存したいと思います (保存方法はわかっています。class のsaveArrayメソッドとして記述しましたTouchDrawView)。

私の問題は、私が言及したように、クラスのオブジェクトでメソッドを呼び出して配列をファイルに保存するようappDelegateにオーバーライドしたいということです。applicationDidEnterBackgroundsaveArrayTouchDrawView

私の問題がわかりますか?のインスタンスを に渡し、後者がメソッドを呼び出せるようにTouchDrawViewするにはどうすればよいですか? 例えば、app delegatesaveArray

- (void)applicationDidEnterBackground:(UIApplication *)application
{

    [touchDrawViewObject saveArray]; // how to get this object?

}

ps。これまでのところ、シングルトン/静的データを回避しようとしていますが、それ以外の方法で実行できることに興味があります。

4

1 に答える 1

1

TouchDrawView にUIApplicationDidEnterBackgroundNotification通知を監視させることで、appDelegate に接続せずにそれを行うことができます。アプリがバックグラウンドに入ったときに発生します。

アプリ全体で異なる保存方法を使用したくない場合もありますが、それはアプリの構築方法によって異なります。

例:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(saveMethod:)
                                             name:UIApplicationDidEnterBackgroundNotification
                                           object:nil];
于 2013-08-15T08:46:11.473 に答える