我应该使用什么样的集合类?

目前,我的iPhone应用程序使用NSMutableArrays来保存NSStrings。我有更多信息要与每个数组中的每个条目相关联。例如,以前我只有一件事放在Array1 [0]中,一个字符串。但是,现在,我想要将另一个字符串和一个整数关联起来。我猜是这样的: 老:[string] new [string,string,integer] 我在考虑使用字典,但我不确定它是否正确。有什么建议?     
已邀请:
NSArray
中的元素可以是字典,C
structs
或Objective-C对象。 字典可以工作,但是如果你要存储原始数据类型值(需要加箱,例如
NSNumber
)或者有可能在更深层次上扩展数据(包含包含另一个字典的字典的字典),它可能很麻烦。此外,不会隐式键入字典对象。 C
struct
可以工作,但它也需要装箱,你不会受益于内存管理方面的Cocoa集合语义 - 你必须自己做。此外,对于
struct
成员没有隐含的支持
copy/retain
语义。 我通常为聚合数据类型声明一个Objective-C类,它将存储在诸如
NSArray
之类的集合中。在你的情况下,像
@interface MyData : NSObject
@property (nonatomic, copy) NSString *firstString;
@property (nonatomic, copy) NSString *secondString;
@property (assign) NSInteger integer;
@end
    
字典是键值对,因此它们不适合这里的法案。您可以使用包含数组的数组,也可以使用包含字符串和整数值的自定义类的数组。     
如果您只想要一个集合并且需要迭代该集合,则选择一个数组。 如果要通过条目索引以外的键查找内容,可以选择“词典”。 当然,这一般都是一般性的,但您没有说明需要使用词典的任何理由。 请记住,您可以创建一个包含两个字符串和一个整数的类,并将该类型的对象放入一个数组中。     

要回复问题请先登录注册