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对象数组.在大多数情况下,更容易使用,以及"正确"的做事方式.任何接触您代码的人都会感谢您.