2012-06-21 24 views
0

我的應用程序需要保存一些數據(大約100個存儲在數組中的雙字段以及一些其他字符串數據)。我有一個方法 - (無效)case2save已經到位將數據保存到NSDocumentDirectory當用戶啓動它,一切運行良好,但我需要保存相同的數據時,應用程序是由用戶(家庭)或由iOS提供。在用戶終止或應用程序轉到後臺時保存應用程序數據字段

我想從委託使用applicationDidEnterBackground來調用我在視圖控制器.m類中使用的相同的方法,但由於函數是每個對象(不是類方法),我不能,但如果如果我使它成爲類方法我沒有實際的數據,這是對象的一部分......所以這是問題。

一個想法如何解決這個問題,並保存數據時,應用程序終止或去背景?

謝謝。

回答

1

您可以在appdelegate中創建該函數,或者只需在appdelegate.h中聲明該類的數據成員並將其設置爲property,並將該數據成員設置爲self,然後在該函數中嘗試保存數據,請使用以下內容。 ....

//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... 

希望這將解決您的問題...

+0

的最後兩行雲在Appdelegate.m有語法問題,因爲我得到錯誤我。我需要導入額外的東西嗎? (我使用5.1) –

+0

是的,你必須在該視圖控制器(AbcViewController.m)類 – Abhishek

+0

中導入appdelegate類,你可以在哪一行得到錯誤... AppdelegateClass * app =(AppdelegateClass * )[[UIApplication sharedApplication]委託]; app.abcVC = self; 如果你正在談論這些行這行會去你的視圖contrller類,你已經使該功能..... – Abhishek

0

發送了一個通知,稱爲UIApplicationDidEnterBackgroundNotification。你可以在你的視圖控制器中聽取它並根據需要做出任何迴應。

相關問題