나는 코코아에서 게임 루프를 만드는 것에 대해 인터넷에서 멀리 떨어져있는 것처럼 보였다. 내가 본 게임 루프의 대부분은 NSTimer를 사용하여 매 초 60 분마다 이벤트를 트리거합니다. 그랜드 센트럴 디스패치 (Grand Central Dispatch)를 사용하는 예제가없는 이유는 무엇입니까? 아래의 애플 개발자 문서의 소스 코드와 같습니다. 내가 모르는 문제가 있습니까?코코아 게임이 그랜드 센트럴 디스패치를 피하여 타이머를 만드는 이유는 무엇입니까?
dispatch_source_t CreateDispatchTimer(uint64_t interval,
uint64_t leeway,
dispatch_queue_t queue,
dispatch_block_t block)
{
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,
0, 0, queue);
if (timer)
{
dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), interval, leeway);
dispatch_source_set_event_handler(timer, block);
dispatch_resume(timer);
}
return timer;
}
NSTimer가 GCD보다 더 유명하고 GCD가 MacOS10.6.x/iOS4.x 이상인 경우 일 수도 있기 때문에 어쩌면? – nacho4d
예. 답장을 보내 주셔서 감사합니다. 이전 버전과 호환되지 않기 때문일 수 있습니다. – Tobias