Iphone NSDictionary与定制对象的性能对比

Iphone NSDictionary与定制对象的性能对比,iphone,memory,object,plist,Iphone,Memory,Object,Plist,我正在使用NSURLConnection从服务器检索由我编写的一些php生成的pList。我的Plist在根级别包含几个数组。这些数组包含多个NSDictionObjects。检索pList后,我使用NSPropertyLitSerialization将数据序列化到NSDictionary中 现在,一旦我有了这个NSDictionary,我就将这些值加载到我用以下代码创建的自定义对象中 NSMutableDictionary *newDict = [[NSMutableDictionary al

我正在使用NSURLConnection从服务器检索由我编写的一些php生成的pList。我的Plist在根级别包含几个数组。这些数组包含多个NSDictionObjects。检索pList后,我使用NSPropertyLitSerialization将数据序列化到NSDictionary中

现在,一旦我有了这个NSDictionary,我就将这些值加载到我用以下代码创建的自定义对象中

NSMutableDictionary *newDict = [[NSMutableDictionary alloc]init];

//Create object array.
for (NSString *key in dict) {
NSArray *tempArr = [dict objectForKey:key]; 
NSMutableArray *gameObjectArray = [[NSMutableArray alloc]             
                                        initWithCapacity:tempArr.count];    
for (NSDictionary *tempDict in tempArr) {
    //Build Objects and add to array

    GameObject *tempGame = [[GameObject alloc] initWithArr:tempDict];
            //initWithArr initializes the values in the object using tempDict
    [gameObjectArray addObject:tempGame];
    [tempGame release];
    }


    [newDict setObject:gameObjectArray forKey:key];
    [gameObjectArray release];
}

self.gameObjectsDict = newDict;
从这一点开始,我在整个应用程序中使用存储在gameObjectsDict中的值对象。用于所有类型的内容,包括渲染UITableView和将数据传递给其他ViewController/View

我的问题: 将我的pList中的所有这些值放入值对象是否值得


以前,我只是使用NSDictionary在应用程序中传递我的值,它工作得很好。我觉得编写代码会更容易,使用值对象会更好,但现在我使用值对象,如果感觉我在浪费更多内存的话。感觉就像我在传递这些充满数据的沉重对象,就像以前一样,我只是在需要时从字典中获取一个值。

使用自定义对象的一个好处是类型安全。当您在很多地方使用objectForKey时,可能很难记住哪种类型的对象有哪些键。让编译器记住这一点很有帮助。

如果要将字典视为对象,最好将值添加到自定义对象中。它真的没有你想象的那么多内存。此外,它还将增强代码的可读性,这通常是一个优点