4

나는 막판 물건을 저장하기 위해 applicationWillTerminate:을 사용하고 있습니다. 그러나 문제는 결코 부름을받지 않는다는 것입니다. 메서드의 맨 위에서 이렇게하는 경우 : NSLog(@"Something"); 호출되지 않고 콘솔로 출력되지 않습니다.applicationWillTerminate : 호출되지 않음

왜 이런 일이 일어나는 지 알고 계십니까? 애플의 문서에서

답변

10

: 배경 실행을 지원하지 않는 또는 iOS 3.x 또는에 연결되어있는 응용 프로그램의

사용자가 응용 프로그램을 종료 할 때 이전에,이 메소드가 항상 호출된다. 백그라운드 실행을 지원하는 응용 프로그램의 경우 응용 프로그램이이 경우 백그라운드로 단순히 이동하기 때문에 사용자가 응용 프로그램을 종료 할 때이 메서드는 일반적으로이라고하지 않습니다. 그러나이 메소드는 응용 프로그램이 백그라운드에서 실행 중이고 일시 중지되지 않은 상황에서 호출 될 수 있으며 시스템은 어떤 이유로 종료해야합니다.

앱이 배경하도록 설정 한 경우 사용 :

- (void)applicationDidEnterBackground:(UIApplication *)application

+0

왜 내 didEndCustomizingItems 방법입니다 NSLog를 넣을 때 아무 것도 출력하지 않습니다. – TheHAWK

+2

중요한주의 사항 : iOS 6 이상에서는 응용 프로그램이 여전히 포 그라운드에있는 동안 사용자가 장치의 전원을 끈 경우 최소한 "applicationWillTerminate :"가 백그라운드에서 실행되지 않고 * 호출됩니다. – smorgan

4

사용 applicationDidEnterBackground: 대신. 멀티 태스킹 시스템에서 홈 버튼을 누르면 응용 프로그램이 종료되지 않습니다. 핵심 응용 프로그램 설계 및 응용 프로그램 수명에 iOS Application Programming Guide에서

+1

Not applicationWillEnterBackground : 해당 메서드가 존재하지 않습니다. applicationDidEnterBackground를 사용하십시오. – zaph

+0

@CocoaFu : 감사합니다. – jrturton

1

:

applicationWillTerminate : 응용 프로그램이 현재 일시 중단 된 경우 메소드가 호출되지 않습니다.

iOS 4.0과 연결하는 경우 데이터를 applicationDidEnterBackground:에 저장해야합니다.

1

단계 1 : 명령 + Shift + H (더블 클릭 (탭))

2 단계 : 이동 응용 프로그램 상단면 (죽)는

3 단계 : applicationWillTerminate 일은

+0

이 작동하지 않습니다. –