2016-06-23 3 views
0

내가 Similator (시계)에 작업 한 일부 watchOS 코드 :watchOS 여기에 간단한 웨이크

..... 
let interval = 60.0 
NSTimer.scheduledTimerWithTimeInterval(interval, 
             target: self, 
             selector: #selector(InterfaceController.timerDidEnd(_:)), 
             userInfo: nil, repeats: false) 
..... 

func timerDidEnd(timer:NSTimer) { 
    print("Time is over! Please wake up!") 
} 

엑스 코드에서 나는 응용 프로그램을 실행, 코드의 첫 번째 부분은 위에서 실행됩니다. 그런 다음 Command-Shift-H를 누르고 앱이 백그라운드에서 실행됩니다.

1 분 후에 디버깅 콘솔에 다음 메시지가 표시됩니다. 시간이 끝났습니다! 일어나세요!

내가 예상 한대로 모두 작동합니다. 내 질문입니다 :

디버거에서 현재 메시지를 인쇄하는 대신 시뮬레이터의 백그라운드에서 응용 프로그램을 활성화하려면 timerDidEnd() 함수 안에 무엇을 써야합니까?

답변

1

앱을 포 그라운드로 가져 오는 타이머 동작에는 아무 것도 쓸 수 없습니다. 사용자 만 앱을 다시 시작할 수 있습니다.

생각해 보면 앱이 원할 때 프로그래밍 방식으로 프로그래밍 할 수 있다면 사용자에게 혼란스럽고 혼란 스럽습니다.

앱을 다시 시작하는 유일한 방법은 사용자가 알림에 반응하는 것입니다. 이것은 사용자가 홈 화면에서 알림 작업을 탭할 때 전화에서 발생하는 것과 비슷합니다.

+0

내가보기에, 요점이 있습니다. 자,이 상황은 어떨까요? 당신과 당신의 앱은 둘 다 자고 있습니다. 그러나 당신은 아침에 당신을 깨우는 앱에 의지합니다. 그런 사건을 어떻게 처리할까요? – Michel

+0

새로운 UserNotifications 프레임 워크를 사용하여 시계에서 로컬 알림을 예약합니다. 아침에 소리/촉각 피드백과 함께 알림이 표시됩니다. Apple은 watchOS 2에서이 작업을 수행 할 수 있습니다. 이제 watchOS 3에서 비슷한 작업을 수행 할 수 있습니다. 다시 알림은 원하는 작업의 핵심입니다. –