假設(爲了爭辯),我在我的iOS項目中有一個包含一些處理的類。如何在Objective-C的運行時將動態屬性添加到對象?
我想知道是否可以在運行時將動態屬性添加到Objective C對象?
我需要動態創建一個NSDictionnary實例中的對象,它沒有固定的鍵值模式& vals。並且要以通用方式創建對象,我需要NSDictionnary的Key用於屬性名稱,Val用於屬性值。
-(NSMutableArray *) getFromJSON:(NSString *)json
{
JSONDecoder *decoder = [[JSONDecoder alloc] init];
NSData *jsonData = [json dataUsingEncoding:NSUTF8StringEncoding];
NSArray *array = [decoder objectWithData:jsonData];
NSMutableArray *data = [[NSMutableArray alloc] initWithArray:array];
for (int i = 0; i < [data count]; i++) {
NSDictionary *modelData = [data objectAtIndex:i];
// .... Object attributes creation goes here
在這條線,我需要從這個DIC(modelData)與必須對應於我們的DIC的鍵屬性名的對象來創建。創建的對象(虛擬類)的屬性將爲:
@property (nonatomic, strong) key0;
@property (nonatomic, strong) key1;
@property (nonatomic, strong) key2;
..等等。那可能嗎 ?
我創建了ModelManager和不同的模型子類,它們從ModelManager類繼承了一些特定的動作。在ModelManager類中,我必須做一個泛型方法,創建一個NSMuttableArray,其中包含NSObject的列表。從Json請求中提取數據。每個Json請求都會返回特定於一個Model的數據。我正在尋找如何以通用的方式在子類中繼承此方法,並將該動態對象轉換爲子類的類型。我發現的唯一通用方法是創建一個具有創建屬性的虛擬類從json數據鍵,然後將此NSObject轉換爲Model子類。
張貼一些代碼。 –
那麼,剛使用'NSMutableDictionary'有什麼問題? – trojanfoe
轉到此[鏈接](http://stackoverflow.com/questions/7819092/how-can-i-add-properties-to-an-object-at-runtime) 這可能會幫助你。 – Suryakant