我正在使用幾個自定義類的項目。我有一個CardModel
(NSObject)有一些整數屬性來保存數據,並有一個Deck
(NSObject)有一個數組來保存一堆CardModels
,然後CardView
(UIView)有一個CardModel
作爲一個屬性,我做時我從Deck
中選擇一個CardModel
。然後我收到了一堆UIViewControllers
,我在UINavigationController
上移動。@class聲明的時間和地點
我的問題是關於何時何地使用@class
編譯器指令。
如果我子類UIViewController
通過使一個新的文件,並繼承它,我應該在MyViewController.h
或.m
頭使用@class MyViewController
和它在文件中實際使用的控制器(比如當一個控制器的頭去將要實例化另一種控制器類型並將其推送到堆棧)。或者我需要使用它?是否只有當我實際上將新屬性添加到我的課程之後才需要超出庫存實施中的內容?看起來好像我把@class
放在了這個地方,確保我沒有錯誤,但是當我需要的時候我並沒有從根本上理解。
謝謝!
謝謝 - 這似乎很清楚。標題中的@class指示引用該類的標頭是可以的。然後,相應的.m文件中的.h文件的#import爲實現提供對類的所有實際屬性和方法的訪問權限。但是這僅適用於NSObject或所有超類的子類嗎?如果說任何時候我創建一個「新文件」並選擇一個子類,那麼我會需要遵循這一點,並且任何時候我只是在我的代碼中實例化一個類,這是一個普通類,我不會? – Steve 2010-07-15 19:27:10
所有的超類。 '@class X'只是簡寫爲「存在可以有指針的類X」。沒有更多,沒有更多。只有當您不能首先導入類頭時(通常在PCH文件中),才需要它。 – bbum 2010-07-15 19:36:26
因此,我可能在多個頭文件中有相同的@class x'指令,只要這些頭文件需要知道'x',無論是作爲屬性還是它們實現的方法,對吧?開始凝固在我心中 - 謝謝! – Steve 2010-07-15 19:52:34