2014-05-19 44 views
1

我正在嘗試創建一個購物車對象,該對象應該能夠註冊不同的產品類,如的UICollectionView,並動態地轉換對象。實現類似於UICollectionView的「registerClass」

例如:

@property (nonatomic) Class productClass; 

_productClass *product = (_productClass*)array[0]; 

難道這允許在Objective-C?如果是,請提供一些示例代碼,謝謝!

回答

2

如果要動態地創建一個類的實例,你不事先知道,很簡單:

Class type = …; 
id instance = [[type alloc] init]; 
+0

它適用於init,但是可以將它轉換爲數組中的對象嗎? '_productClass * product =(_productClass *)array [0];'Xcode抱怨這個。 – siutsin

+0

我不知道你的第二行應該做什麼。但Xcode不會喜歡你的輸入,你不能使用變量('_productClass')來代替類型。請改用'id':'id product = array [0]'。 – zoul

+0

只是嘗試圍繞語法:)感謝您的解決方案,id是關鍵。 – siutsin

0

類被視爲客觀C對象,所以你幾乎可以做任何你想要的一切,存儲和允許從集合中檢索。
當我需要序列化類名出於某種原因時,我最常用的是將其轉換爲字符串並從字符串恢復它。

[array addObject:NSStringFromClass([myObjec class])]; 
Class yourClass = NSClassFromString(array[0]); 
相關問題