2012-06-21 4 views
0

내 앱이 일부 데이터 (배열에 저장되는 약 100 개의 이중 필드와 몇 개의 다른 문자열 데이터도 필요함)를 저장해야합니다. 나는 방법을 - (void) case2save 이미 사용자가 그것을 시작하고 모두 잘 작동하는 NSDocumentDirectory 데이터를 저장할 수 있지만 사용자가 (가정) 또는 응용 프로그램이 종료 될 때 동일한 데이터를 저장해야합니다. iOS에서사용자 종료 또는 앱 실행시 앱 데이터 필드 저장

위임자의 applicationDidEnterBackground를 사용하여 뷰 컨트롤러 .m 클래스에서 사용하는 메소드를 호출하려고하지만 함수가 클래스 메소드가 아닌 객체 (클래스 메소드가 아님)에서 사용할 수 있기 때문에 그럴 수는 있지만 if 나는 그것을 클래스 메소드로 만들고있다. 나는 객체의 일부인 실제 데이터를 가지고 있지 않다 ... 그래서 그것이 문제 다.

앱이 종료되거나 백그라운드로 이동할 때 해당 문제를 해결하고 데이터를 저장하는 방법에 대한 아이디어가 있습니까?

감사합니다.

답변

1

당신은 AppDelegate에에서 그 기능을 확인하거나 appdelegate.h에서 그 클래스의 데이터 멤버를 선언하고 그 특성을 확인하고 다음과 같은 데이터를 저장하려고 그 함수에서 자기, 사용 등이 데이터 멤버를 설정할 수 있습니다. .... 내가 오류를 받고 있어요으로 Appdelegate.m 가진 구문 문제에가는이 문제를 해결할 수

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

마지막 두 줄. 여분의 것을 가져와야합니까? (저는 5.1을 사용하고 있습니다) –

+0

예보기 컨트롤러 (AbcViewController.m) 클래스에서 appdelegate 클래스를 가져와야합니다. – Abhishek

+0

어떤 줄에 오류가 발생 했습니까? AppdelegateClass * app = (AppdelegateClass *) [[UIApplication sharedApplication] delegate]; app.abcVC = 자기; 이 라인에 대해 이야기하고 있다면이 라인은 당신이 그 함수를 만든 뷰 contrller 클래스에 들어갈 것입니다 ..... 내 AbcViewController.mi의 – Abhishek

0

UIApplicationDidEnterBackgroundNotification이라는 알림이 전송되었습니다. 귀하는 귀하의보기 컨트롤러에서 그것을들을 수 있으며 귀하가 필요로하는 모든 것을 응답으로 할 수 있습니다.

관련 문제