1.用timer的话 vc没有了 timer也跟着释放了 如果不释放 那就成循环引用了
2.用本地通知的话,只能设置固定时间为触发时间,不能像定时器那样每隔一段时间执行一次
PHPz2017-04-18 09:53:38
GCD 타이머 사용을 권장합니다. GCD의 타이머는 NSTimer와 다릅니다. NSTimer는 RunLoop의 영향을 받지만 RunLoop도 GCD를 기반으로 하기 때문에 GCD의 타이머는 영향을 받지 않습니다.
으아아아黄舟2017-04-18 09:53:38
사용 방법은 귀하에게 달려 있습니다. 구체적인 상황을 분석하십시오.
개인적으로 가장 좋은 방법은 Runloop
입니다. 새 클래스를 만들고 클래스가 인스턴스를 초기화한 후 새 스레드를 만들고 이 스레드의 Runloop
메시지를 듣고 신호 소스를 추가한 다음 구현합니다. 콜백 메소드에 필요한 사항이 있습니다. 이렇게 하면 일부 NSTimer
오류나 기타 문제를 피할 수 있습니다.
두 번째는 모니터링CADisplayLink
입니다. 물론 모니터링CADisplayLink
에도 작업량이 많아 '프레임 드랍'이 발생할 수 있습니다.
그런데 등록하지 않으면 백그라운드에서 구현하기가 쉽지 않습니다音频服务
. 이 방법도 공부할 수 있습니다.