2012-10-06 57 views
1

我有四個屏幕,除了使用四個不同的類以外,完全相同。我想我可以把這個屬性在我的頭他們減少至一個:如何在目標C代碼中使用Class對象

@property Class *classType; 

然後,我可以設置等級和完成。

然而,當我嘗試使用classType所類似如下:

NSArray *myArray = [classType allobjects]; 

我得到如下:「錯誤的接收器類型__unsafe_unretained類*」

這真的沒有太大的意義。類方法返回NSArray。當我使用顯式類名時,沒有錯誤,一切正常。

我正在使用xcode 4.5和ARC。使用

@property Class classType; 

+0

你應該繼承基類或使用它的協議。 – NeverBe

回答

3

嘗試丟失*。類就像id,指針類型是隱含的。

+0

好的,那固定了它的一面。現在,當我在我的主類我有controller.classType = MyOtherClass;它拋出了錯誤「意外的接口名稱MyOtherClass:預期的表達式」。順便說一句,謝謝你對「*」的理解。 –

+0

在右側執行[MyOtherClass class]。 –

+0

完美。我已經寫了近15年的objc,這是我第一次真的需要這樣做。大聲笑 - 感謝您的幫助! –

0

在谷歌快速搜索,在運行的頭甚至更好:

typedef struct objc_class *Class; 

Class類型是指針本身 - 宣佈的屬性時,你不需要額外的*跡象。