0

私のアプリはいくつかのデータを保存する必要があります(配列に格納されている約100個のdoubleフィールドと、他のいくつかの文字列データも同様です)。ユーザーが開始したときにNSDocumentDirectoryにデータを保存するためのメソッド-(void)case2saveがすでに用意されており、すべてが正常に機能していますが、ユーザー(ホーム)またはユーザーによってアプリが終了したときに同じデータを保存する必要がありますiOSによる。

デリゲートからapplicationDidEnterBackgroundを使用して、View Controller .mクラスで使用しているのと同じメソッドを呼び出そうとしていますが、関数はオブジェクトごと(クラスメソッドではない)であるため、できません。それはクラスメソッドであるため、オブジェクトの一部である実際のデータがありません...それが問題です。

その問題を解決し、アプリが終了したときやバックグラウンドに移動したときにデータを保存する方法はありますか?

ありがとう。

4

2 に答える 2

1

appdelegateでその関数を作成するか、appdelegate.hでそのクラスのデータメンバーを宣言してプロパティにし、データを保存しようとしている関数でこのデータメンバーを自分自身として設定することができます。次を使用してください。

//in Your Appdelegate.h suppose you have viewController named AbcViewController ....
AbcViewController  *abcVC;

create property ...
@property (nonatomic,retain) AbcViewController  *abcVC;

//in Your Appdelegate.m
@synthesize  abcVC;

//Now in function where you are trying to save database .....

AppdelegateClass   *app = (AppdelegateClass*)[[UIApplication sharedApplication]delegate];
 app.abcVC = self;

 //now call that function from applicationDidEnterBackground with the help of this object...

これで問題が解決することを願っています...

于 2012-06-21T14:43:38.023 に答える
0

と呼ばれる通知が送信されUIApplicationDidEnterBackgroundNotificationます。ビューコントローラでそれをリッスンし、それに応じて必要なことを行うことができます。

于 2012-06-21T14:35:57.737 に答える