내가 스위프트 3.타이머가 알 수없는 이유로
의 I이 응용 프로그램을 쓰고 있어요 방법에 간단한 알람 시계 응용 프로그램을 쓰고 있어요 위해, 잠시 후 발사를 연기 시작, 나는 timer
세트가 60 초 동안 화재가 발생할 때마다 경보가 설정되었는지 확인한 다음 경보를 발합니다.
이 응용 프로그램의 목적은 내 조명을 내 홈 킷 연결 표시등을 켭니다. 로컬 알림을 설정하는 방법을 사용할 수없는 이유는 실행될 때 조명을 켜는 코드를 실행할 방법이 없기 때문입니다.
휴대 전화를 잠글 때 응용 프로그램이 열려 있으면이 응용 프로그램이 백그라운드에서 실행되도록 설정되어 있습니다 (사과가 허용하는 것처럼).
이것은 오랜 시간 동안이라도 시뮬레이터에서 완벽하게 작동합니다. 너무 멀리 앞서서 알람을 설정하지 않으면 내 휴대 전화에서도 작동합니다. 그러나 응용 프로그램을 밤새 휴대 전화에두면 거의 작동하지 않습니다.
이 디버깅하려면 응용 프로그램에서 텍스트 파일을 만들고 시간을 확인할 때 해당 텍스트 파일에 시간을 기록하도록 timer
을 설정하십시오.
밤늦게까지 타이머가 밤새 계속 작동하는지 확인할 수 있도록이 작업을 수행했습니다.
내 결과가 여기에 있습니다.
지난 밤에, 나는 4am에 자러 가고, 8am를 위해 경보를 설정했다. (나는 위대함을 안다, 하하) 텍스트 파일에서, 응용 프로그램을 실행할 때 타이머가 좋은 시간 30 분, 매분마다 계속해서 실행되었다.
읽기 쉽게하기 위해 스크린 샷을 업로드했습니다. 이 모든 순간을 기록했다 방법
알 수 있습니다.
그러나 밤늦게 타이머가 1 분마다 멈추고 더 강렬 해지기 시작했습니다. 타이머가 5:25 am
, 5:53
등 다음, 5:13 am
에서 발사하는 방법
알 수 있습니다.
지난 몇 밤 동안 이런 일이 발생했으며 어떻게해야할지 모르겠다.
나는 모든 문자를받지 못하고있다. 매분마다 발사하기로되어있는 타이머가 무작위로 발사 될 것이라고 생각할만한 것이있다.
이 타이머가 매분 안정적으로 작동하는지 확인할 수있는 방법이 있습니까?
여기까지 작성해 주시면 감사하겠습니다. 이것은 첫 번째 응용 프로그램이며 Apple의 배경 제한 사항을 해결하기위한 투쟁입니다.
감사합니다.
불행히도 iOS는 장기 실행, 시간 예약 백그라운드 작업에 적합한 플랫폼이 아닙니다. 어딘가에 서버를 사용하여 필요한 시간에 앱에 자동 푸시 알림을 보내면 앱을 백그라운드에서 실행하여 표시 등을 끌 수 있습니다. 또한 Xcode 디버거에서 실행 중일 때 배경 실행 제한이 일시 중지되므로 시뮬레이터와 장치 간의 차이점을 확인하게됩니다. – Paulw11
그래서 자동 푸시 알림을 보내면 코드를 실행하여 표시등을 켤 수 있습니까? 그게 서버에서 콘텐츠를 다운로드하는 것으로 제한되어 있다고 생각했습니다. 그게 사실이 아니라면 위대한 것입니다! – Jolaroux
'didReceiveRemoteNotification' 메소드에서 원하는 코드를 실행할 수 있습니다. 백그라운드 실행 시간 제한을 존중해야합니다. – Paulw11