2014-02-09 70 views
0

我有,我想clusterize如何初始化一個默認的類集羣子類?

CCluster(大衆臉)

隱藏的工人誰是繼承CCluster
CInternalMutable類:CCluster
CInternalFoo:CCluster

所以我想CCluster默認初始化返回CInternalMutable
但在CInternalMutable我想調用[超級初始化],但是我們有一個循環...

與CInternalFoo幾乎相同的問題,它會初始化CInternalMutable然後丟棄它

那麼如何初始化我的CInternalMutable類?

現在我只是不打電話[超級初始化]因爲CCluster是一個「抽象」類,從NSObject的

回答

0

繼承坦率地說什麼你做的是隻是壞的編程習慣。抽象類不應該有它們的實例,所以你不應該有一個默認的init方法返回它的一個子類。但是,如果你真的想這樣做,你有兩個選擇。我更喜歡創建另一個初始化函數,它是defaultInit或類似於抽象類的東西,或者你可以像if([self class] == [CCluster class])那樣說出是否能夠判斷是否或者不是調用者是正確的類。