字典数组或多个数组,哪个最好?

Ram*_*uri 1 architecture oop cocoa dictionary objective-c

我遇到了解析xml或json的要求,并且必须在表中列出它们.

我没有遇到这个问题,但我想优化代码以减少内存资源.

问题是,拥有多个数组是最好的还是拥有一个内容为字典的单个数组更好.

请看下面的示例,其中3个名称以2种方式保存

方式1

NSArray* names = [NSArray arrayWithObjects:
                  [NSDictionary dictionaryWithObjectsAndKeys:
                   @"rama krishna",@"firstname",
                   @"chunduri",@"surname",
                   nil],
                  [NSDictionary dictionaryWithObjectsAndKeys:
                   @"rama krishna",@"firstname",
                   @"gutta",@"surname",
                   nil],
                  [NSDictionary dictionaryWithObjectsAndKeys:
                   @"selvakumar",@"firstname",
                   @"k",@"surname",
                   nil],
                  nil];
Run Code Online (Sandbox Code Playgroud)

方式2

NSArray *firstnames=[NSArray arrayWithObjects:@"Rama Krishna",@"Rama Krishna",@"selvakumar",nil];
NSArray *surnames=[NSArray arrayWithObjects:@"chunduri",@"gutta",@"k",nil];
Run Code Online (Sandbox Code Playgroud)

因此,这两种方式中的哪一种可以优先考虑优化内存消耗.

Chr*_*per 10

您刚刚遇到了使用面向对象编程的绝佳场所.

例如,将"firstname"映射到"rama krishna"和"surname"到"gutta"的字典应该真正地分组为具有NSString*surname和firstname 的实例变量的类.

例如:

@interface Person : NSObject {
    NSString *firstname;
    NSString *surname;
}

@end
Run Code Online (Sandbox Code Playgroud)

然后你将拥有一个Person对象数组.在大多数情况下,更容易使用,以及"正确"的做事方式.任何接触您代码的人都会感谢您.