2012-08-14 3 views
0

내 질문의 제목을 알지 못합니다. 그래서 나는 한 번 내 앱을 실행했습니다. 나는 'NSUserDefaults'에 현재 날짜를 저장했다. 나는 앱을 닫았다. 다음 날 (시스템의 날짜를 변경하여) 시뮬레이터에서 앱을 연 다음 다시 동일한 작업을 수행했습니다. 그리고 주로 'NSUserDefaults'의 현재 날짜도 오늘의 가치로 업데이트되었습니다.응용 프로그램 닫기 및 다시 열기

대신 Xcode를 통해 앱을 다시 실행하면됩니다. 예상대로 값을 반환합니다. 이 두 작업의 차이점을 알고 싶습니다. 앱을 다시 실행하면 앱이 제대로 작동합니다. 그러나 한 번 실행하고 다시 열고 다시 사용한다고해도 문제가 발생하지 않습니다. 왜 이런거야!!

+0

수행중인 두 작업에 대해 좀 더 구체적으로 설명 할 수 있습니까? – ashokbabuy

답변

4

AppDelegate에서 수행중인 작업이 -application:didFinishLaunchingWithOptions 메서드에 포함되어 있지 않을 수도 있습니다. 이 메소드는 앱이 시작될 때 호출됩니다. 그런 다음 홈 버튼을 누르고 응용 프로그램을 다시 열면 응용 프로그램이 비활성 상태이지만 - applicationWillEnterForeground 메서드가 호출되므로이 메서드는 호출되지 않습니다. 앱을 죽이면 (또는 OS가 그것을 죽이고) 다시 열어 -application:didFinishLaunchingWithOptions이 다시 호출됩니다.

+0

응용 프로그램이 시작되면 '-applicationWillEnterForeground'가 호출되지 않습니다. 그게 다야? – Nina

+0

처음 실행될 때'-application : didFinishLaunchingWithOptions-'이 호출되고,'applicationWillEnterForeground'가 다시 시작될 때 호출됩니다. 중단 점을 넣고 디버그하면됩니다. 응용 프로그램 수명주기에 대한 문서도 읽을 수 있습니다 ... – graver

+0

네 .. 맞았습니다 !! :-) 고맙습니다!! :-) – Nina

관련 문제