Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在cocoa编程中每帧调用一个函数?_Cocoa_Runloop - Fatal编程技术网

如何在cocoa编程中每帧调用一个函数?

如何在cocoa编程中每帧调用一个函数?,cocoa,runloop,Cocoa,Runloop,我知道cocoa应用程序有一个主运行循环,如何在每一帧调用一个函数?我的意思是这个函数应该在主循环的每个进程中调用。是通过+(NSRunLoop*)currentRunLoop;(void)运行的吗 < P>可以调用GETCFRUNROLL获取核心基础运行循环。然后,只需向CFRunLoop添加一个观察者。有关此功能,请参见文档: CFRunLoopAddObserver()我假设您的目标是OSX,因为标记是cocoa而不是cocoa touch,所以如果您想与每个屏幕帧更新同步,您应该签出 我

我知道cocoa应用程序有一个主运行循环,如何在每一帧调用一个函数?我的意思是这个函数应该在主循环的每个进程中调用。是通过+(NSRunLoop*)currentRunLoop;(void)运行的吗

< P>可以调用GETCFRUNROLL获取核心基础运行循环。然后,只需向CFRunLoop添加一个观察者。有关此功能,请参见文档:


CFRunLoopAddObserver()

我假设您的目标是OSX,因为标记是cocoa而不是cocoa touch,所以如果您想与每个屏幕帧更新同步,您应该签出


我知道已经很久了。无论如何,对于像我这样偶然发现的人来说,这可能很有用。

请注意,这不会以固定的时间间隔调用observer函数,因为运行循环不会以固定的时间间隔启动。没有固定的“帧速率”。运行循环在需要执行某项操作时执行某项操作;在此之前,运行循环可能会休眠任何时间,从微秒到几年不等。一方面,如果应用程序中没有发生任何事情,这可能正是您所需要的,也许您不需要做任何事情。另一方面,如果你需要在一个固定的或最大的时间间隔内开火,你最好使用定时器或延迟执行。