我正在嘗試創建一個購物車對象,該對象應該能夠註冊不同的產品類,如的UICollectionView
,並動態地轉換對象。實現類似於UICollectionView的「registerClass」
例如:
@property (nonatomic) Class productClass;
_productClass *product = (_productClass*)array[0];
難道這允許在Objective-C?如果是,請提供一些示例代碼,謝謝!
我正在嘗試創建一個購物車對象,該對象應該能夠註冊不同的產品類,如的UICollectionView
,並動態地轉換對象。實現類似於UICollectionView的「registerClass」
例如:
@property (nonatomic) Class productClass;
_productClass *product = (_productClass*)array[0];
難道這允許在Objective-C?如果是,請提供一些示例代碼,謝謝!
如果要動態地創建一個類的實例,你不事先知道,很簡單:
Class type = …;
id instance = [[type alloc] init];
類被視爲客觀C對象,所以你幾乎可以做任何你想要的一切,存儲和允許從集合中檢索。
當我需要序列化類名出於某種原因時,我最常用的是將其轉換爲字符串並從字符串恢復它。
[array addObject:NSStringFromClass([myObjec class])];
Class yourClass = NSClassFromString(array[0]);
它適用於init,但是可以將它轉換爲數組中的對象嗎? '_productClass * product =(_productClass *)array [0];'Xcode抱怨這個。 – siutsin
我不知道你的第二行應該做什麼。但Xcode不會喜歡你的輸入,你不能使用變量('_productClass')來代替類型。請改用'id':'id product = array [0]'。 – zoul
只是嘗試圍繞語法:)感謝您的解決方案,id是關鍵。 – siutsin