NSDisplayLinkUpdateLoop 1.0.1

NSDisplayLinkUpdateLoop 1.0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

Ian Grossberg维护。



  • 作者
  • Ian G

NSDisplayLinkUpdateLoop是一个简单的对象,它可以在屏幕更新时通知您的应用程序。

这简化了您的更新循环构建,提供了比NSTimer更高的精度,并允许与屏幕更新同步(参考:Fabien Sanglard关于NSTimer存在的问题以及他的替代解决方案的精彩阅读)。

要使用NSDisplayLinkUpdateLoop,首先让您的对象继承并实现NSDisplayLinkUpdateLoopDelegate接口

#include "NSDisplayLinkUpdateLoop.h"

@interface IWannaUpdate : NSObject< NSDisplayLinkUpdateLoopDelegate >

...

@implementation IWannaUpdate
-( void )update:( NSTimeInterval )deltaTime
{
...
}

然后实例化一个NSDisplayLinkUpdateLoop,让您的对象订阅

-( void )startUpdates
{
    IWannaUpdate* updateMe = [ [ IWannaUpdate alloc ] init ];

    updateLoop = [ [ NSDisplayLinkUpdateLoop alloc ] init ];
[ updateLoop subscribe:updateMe ];
}

要停止接收更新调用

[ updateLoop unsubscribe:updateMe ];

很简单!

注意

NSDisplayLinkUpdateLoop保留其订阅者,请确保您理解在创建引用所有权循环时的时机!