2014-09-21 3 views
4

오늘 확장 기능에서 NSTimer를 사용하여 위젯을 새로 고침하고 싶지만이 동작이 적법성인지 알 수 없습니까?복용량 NSTimer는 오늘 연장 (위젯)에서 사용할 수 있습니까?

NSTimer를 사용하여 위젯 UI를 1 초마다 새로 고치고 데모를 만들었습니다. 작동하는 것처럼 보이지만 사용자가 알림 센터를 종료하면 타이머가 계속 실행됩니다. 언제 그리고 어디서 멈추어야합니까? 타이머?

+0

아직도이 행동 적법성이 있는지 모르지만 Apple이 NSTimer에 NS_EXTENSION_UNAVAILABLE 플래그를 추가하지 않는다는 것을 알았으므로 오늘 확장 프로그램에서 NSTimer를 사용할 수 있다고 생각합니다. 그리고 나서 viewWillAppear에서 타이머를 시작하는 것이 좋은 방법이라고 생각합니다. 그리고 viewWillDisappear :에서 타이머를 멈추십시오. 완벽하게 작동합니다. – vcLwei

답변

6

나는이 접근법이 나를 위해 잘 작동하는지 확인할 수 있습니다. 당신은 알림 센터를 닫 스 와이프 시작으로

override func viewDidDisappear(animated:Bool) { 
    // stop the timer here when notification center is closed 
} 

흥미롭게도, 모두 viewWillDisappearviewDidDisappear은 모두 즉시 (순서대로) 서로 다른 후 하나라고합니다. 이것은 알림 센터와 위젯이 여전히 화면에 표시되는 동안 (드래그 핸들에 손가락을 대고있는 경우) viewDidDisappear이 이미 호출되었음을 의미합니다.

+2

관련된 알림에서 알림 센터를 열 때 관련 메소드가 호출되는 순서는 'viewDidLoad','widgetPerformUpdateWithCompletionHandler', 'viewWillAppear'이며 알림 센터가 완전히 열린 상태가 될 때마다 호출됩니다 –

관련 문제