2011-11-04 51 views
0

我一直在深入思考創建「數據模型」的一般方法,並且一直在使用最佳實踐和MVC模式。目前我正在使用單例模式來獲取我的httprequest和json解析器(它來自NSDictionary)。現在,我不希望直接訪問這個解析器,而是希望創建一個可以綁定到此的數據模型。通用數據建模概述

不過,我一直在努力,如果有一個簡單的方法來做到這一點,而不是手動分配「[MyObj中的setValue:[jsonDict objectForKey:@」名「]]」; myObj往往是一個簡單的NSString對象。

由於NSDictionary的是一個很好的概念KVC,我怎麼能利用這一豐富的數據模型的一個更好的風格中,我一般訪問除「[MyObj中的setValue myObj.name或myObj.address實體:jsonDict objectForKey: @「name」]];「行爲。

我已經看過「核心數據」模型,但是當前的設計並不需要在本地存儲任何東西,但出於安全原因只在內存中。

這裏的任何好的想法或最佳實踐解決方案將非常有幫助。

回答

0

只需創建您的課程。然後創建一個類,將數據從您的字典序列化到您的對象。

假設您創建一個具有屬性firstName和lastName的Person類。然後你箱子像PresonController一類,將做管理的人的對象,並在其中創建類的方法,如

+(Preson *)personFromDictionary:(NSDictionary)peseonDictionary;

每一次你需要創建一個字典的人時,你會做

Person *newPerson = [PersonController personFromDictionary:yourPersonDictionary]; 

然後在你的代碼只訪問Person對象

NSLog(@"Person first name:%@",newPerson.firstName); 

希望的屬性我是清楚的enoug h爲你。

+0

Terente,感謝您的輸入,這真的讓我很感興趣,我只是好奇我是否真的需要PersonController的另一個類,或者我可以在Person類中複製該方法嗎?此外,這是一個單向分配,是爲了更新「解析器對象」,我將再次做相反的權利? – kforkarim