【问题标题】:Confused about NSCFTimer... what is it?对 NSCFTimer 感到困惑......它是什么?
【发布时间】:2010-07-05 18:12:35
【问题描述】:

谁能告诉我 NSCFTimer 到底是什么?当我向 NSTimer 询问计时器时,我明白了。 我的问题是我正在尝试检查一个对象(假设是一个 NSTimer,请注意“假设”这个词,这就是我要检查的原因)是否是 NSTimer 类的对象,它似乎不起作用。这个“NSCFTimer”是否以任何方式......阻碍了这个过程?

【问题讨论】:

    标签: iphone objective-c cocoa class nstimer


    【解决方案1】:

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

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

    【讨论】:

    • 我正在使用一个数组来同时存储计时器和其他对象......我已经改变了它,这不是一个好主意。 :) 谢谢。
    • 优秀。在我们的编程生活中的某个时刻,我们都会屈服于超活力的诱惑。
    【解决方案2】:

    bbum 说得很好,但更直截了当:据你所知,NSCFTimerNSTimer 是一回事,你不必担心。 :)

    技术原因: NSTimerCFRunLoopTimer 是免费桥接的。当您实例化NSTimer 时,该类中的代码会将您的实例替换为Core Foundation 不透明C 类型CFRunLoopTimer 的实例。 CFRunLoopTimer 在 Objective-C 运行时将自己标识为 NSCFTimer 类的实例,因此 NSTimer 实例的类将报告为 NSCFTimer

    有关免费桥接、Core Foundation 以及您在不知不觉中使用这两者的频率的更多信息,请参阅Apple's documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 2012-07-22
      • 2013-05-13
      • 2020-04-16
      • 2023-03-08
      • 2019-08-04
      相关资源
      最近更新 更多