对NSCFTimer感到困惑......它是什么?

时间:2010-07-05 18:12:36

标签: iphone objective-c cocoa class nstimer

有人能告诉我究竟是什么NSCFTimer?当我向NSTimer询问计时器时,我明白了。 我的问题是,我正在尝试检查一个对象(据说是一个NSTimer,注意“据说”这个词,这就是为什么我正在检查)是NSTimer类的对象,它似乎不起作用。这个“NSCFTimer”以任何方式阻碍了这个过程吗?

2 个答案:

答案 0 :(得分:7)

NSCFTimer是Foundation和CoreFoundation框架的实现细节。它是NSTimer的子类,因此,isKindOfClass:可以正常工作。

但它确实提出了一个问题,为什么你可能会引用一个可能是也可能不是Timer的对象。计时器的唯一来源是您的创建或框架内定义良好的方法。因此,这种不确定性都是非典型的,而且常常表明存在潜在的设计问题。

答案 1 :(得分:4)

bbum非常好,但更直言不讳:据你所知,NSCFTimerNSTimer是一回事,你不用担心。 :)

技术原因: NSTimerCFRunLoopTimer免费联网。实例化NSTimer时,该类中的代码将使用Core Foundation opaque C类型CFRunLoopTimer的实例替换您的实例。 CFRunLoopTimer将Objective-C运行时标识为类NSCFTimer的实例,因此NSTimer实例的类将报告为NSCFTimer

有关免费桥接,Core Foundation以及您在不知情的情况下使用它们的频率的更多信息,请参阅Apple's documentation