有人能告诉我究竟是什么NSCFTimer?当我向NSTimer询问计时器时,我明白了。 我的问题是,我正在尝试检查一个对象(据说是一个NSTimer,注意“据说”这个词,这就是为什么我正在检查)是NSTimer类的对象,它似乎不起作用。这个“NSCFTimer”以任何方式阻碍了这个过程吗?
答案 0 :(得分:7)
NSCFTimer
是Foundation和CoreFoundation框架的实现细节。它是NSTimer
的子类,因此,isKindOfClass:
可以正常工作。
但它确实提出了一个问题,为什么你可能会引用一个可能是也可能不是Timer的对象。计时器的唯一来源是您的创建或框架内定义良好的方法。因此,这种不确定性都是非典型的,而且常常表明存在潜在的设计问题。
答案 1 :(得分:4)
NSCFTimer
与NSTimer
是一回事,你不用担心。 :)
技术原因: NSTimer
与CFRunLoopTimer
免费联网。实例化NSTimer
时,该类中的代码将使用Core Foundation opaque C类型CFRunLoopTimer
的实例替换您的实例。 CFRunLoopTimer
将Objective-C运行时标识为类NSCFTimer
的实例,因此NSTimer
实例的类将报告为NSCFTimer
。
有关免费桥接,Core Foundation以及您在不知情的情况下使用它们的频率的更多信息,请参阅Apple's documentation。