오늘 확장 기능에서 NSTimer를 사용하여 위젯을 새로 고침하고 싶지만이 동작이 적법성인지 알 수 없습니까?복용량 NSTimer는 오늘 연장 (위젯)에서 사용할 수 있습니까?
NSTimer를 사용하여 위젯 UI를 1 초마다 새로 고치고 데모를 만들었습니다. 작동하는 것처럼 보이지만 사용자가 알림 센터를 종료하면 타이머가 계속 실행됩니다. 언제 그리고 어디서 멈추어야합니까? 타이머?
오늘 확장 기능에서 NSTimer를 사용하여 위젯을 새로 고침하고 싶지만이 동작이 적법성인지 알 수 없습니까?복용량 NSTimer는 오늘 연장 (위젯)에서 사용할 수 있습니까?
NSTimer를 사용하여 위젯 UI를 1 초마다 새로 고치고 데모를 만들었습니다. 작동하는 것처럼 보이지만 사용자가 알림 센터를 종료하면 타이머가 계속 실행됩니다. 언제 그리고 어디서 멈추어야합니까? 타이머?
나는이 접근법이 나를 위해 잘 작동하는지 확인할 수 있습니다. 당신은 알림 센터를 닫 스 와이프 시작으로
override func viewDidDisappear(animated:Bool) {
// stop the timer here when notification center is closed
}
흥미롭게도, 모두 viewWillDisappear
및 viewDidDisappear
은 모두 즉시 (순서대로) 서로 다른 후 하나라고합니다. 이것은 알림 센터와 위젯이 여전히 화면에 표시되는 동안 (드래그 핸들에 손가락을 대고있는 경우) viewDidDisappear
이 이미 호출되었음을 의미합니다.
관련된 알림에서 알림 센터를 열 때 관련 메소드가 호출되는 순서는 'viewDidLoad','widgetPerformUpdateWithCompletionHandler', 'viewWillAppear'이며 알림 센터가 완전히 열린 상태가 될 때마다 호출됩니다 –
아직도이 행동 적법성이 있는지 모르지만 Apple이 NSTimer에 NS_EXTENSION_UNAVAILABLE 플래그를 추가하지 않는다는 것을 알았으므로 오늘 확장 프로그램에서 NSTimer를 사용할 수 있다고 생각합니다. 그리고 나서 viewWillAppear에서 타이머를 시작하는 것이 좋은 방법이라고 생각합니다. 그리고 viewWillDisappear :에서 타이머를 멈추십시오. 완벽하게 작동합니다. – vcLwei