개인적으로 가장 좋은 방법은 Runloop입니다. 새 클래스를 만들고 클래스가 인스턴스를 초기화한 후 새 스레드를 만들고 이 스레드의 Runloop 메시지를 듣고 신호 소스를 추가한 다음 구현합니다. 콜백 메소드에 필요한 사항이 있습니다. 이렇게 하면 일부 NSTimer 오류나 기타 문제를 피할 수 있습니다.
두 번째는 모니터링CADisplayLink입니다. 물론 모니터링CADisplayLink에도 작업량이 많아 '프레임 드랍'이 발생할 수 있습니다.
그런데 등록하지 않으면 백그라운드에서 구현하기가 쉽지 않습니다音频服务. 이 방법도 공부할 수 있습니다.
GCD 타이머 사용을 권장합니다. GCD의 타이머는 NSTimer와 다릅니다. NSTimer는 RunLoop의 영향을 받지만 RunLoop도 GCD를 기반으로 하기 때문에 GCD의 타이머는 영향을 받지 않습니다.
으아아아NSTimer
싱글턴을 사용한 다음 메인 스레드에 참여하세요runloop
에이전트 플러스 GCDj 플러스 싱글톤
사용 방법은 귀하에게 달려 있습니다. 구체적인 상황을 분석하십시오.
개인적으로 가장 좋은 방법은
Runloop
입니다. 새 클래스를 만들고 클래스가 인스턴스를 초기화한 후 새 스레드를 만들고 이 스레드의Runloop
메시지를 듣고 신호 소스를 추가한 다음 구현합니다. 콜백 메소드에 필요한 사항이 있습니다. 이렇게 하면 일부NSTimer
오류나 기타 문제를 피할 수 있습니다.두 번째는 모니터링
CADisplayLink
입니다. 물론 모니터링CADisplayLink
에도 작업량이 많아 '프레임 드랍'이 발생할 수 있습니다.그런데 등록하지 않으면 백그라운드에서 구현하기가 쉽지 않습니다
으아악音频服务
. 이 방법도 공부할 수 있습니다.