2010-07-05 66 views
1

有人能告訴我究竟NSCFTimer是什麼?當我向NSTimer詢問計時器時我會得到它。 我的問題是,我試圖檢查一個對象(應該是一個NSTimer,注意單詞「所謂」,這就是爲什麼我檢查)是類NSTimer的對象,它似乎並不工作。這個「NSCFTimer」以任何方式阻礙了這個過程嗎?困惑於NSCFTimer ...它是什麼?

回答

7

NSCFTimer是Foundation和CoreFoundation框架的實現細節。它是NSTimer的子類,因此isKindOfClass:將工作得很好。

儘管如此,它的確提出了一個問題,即爲什麼你可能會引用一個可能或可能不是Timer的對象。定時器的唯一來源是在框架內創建或定義明確的方法。因此,這種不確定性既非典型又常常表明潛在的設計問題。

+0

我正在使用一個數組來同時存儲計時器和其他對象......我改變了它,這不是一個好主意。 :) 謝謝。 – Vervious 2010-07-05 18:34:18

+1

非常好。在我們的編程生涯的某個時刻,我們都屈服於超能力的吶喊。 – bbum 2010-07-05 18:43:39

4

bbum說得很好,但要更直率一點:只要你需要知道,NSCFTimerNSTimer是一樣的,你不必擔心。 :)

的技術原因:NSTimer是免費電話與CFRunLoopTimer橋接。當您實例化NSTimer時,該類中的代碼將用Core Foundation不透明C類型實例替換您的實例CFRunLoopTimerCFRunLoopTimer將Objective-C運行時標識爲NSCFTimer類的實例,因此NSTimer的實例類將報告爲NSCFTimer

有關免費橋接的更多信息,Core Foundation以及您甚至不知道它的使用頻率,請參閱Apple's documentation

+0

解釋它。謝謝。 – Vervious 2010-07-06 03:42:26