2011-04-12 65 views
1

目前,我的iPhone应用程序使用NSMutableArrays来保存NSStrings。我有更多的信息要与每个数组中的每个条目关联。例如,以前我只有一件事要放入一个字符串Array1 [0]。然而,现在,与字符串一起,我想将另一个字符串和一个整数关联起来。我想是这样的:我应该使用什么样的集合类?

老:[字符串]

新[字符串,字符串,整数]

我想用一本字典,但我真的不知道,如果它是正确的。有什么建议?

回答

3

NSArray中的元素可能是字典,C structs或Objective-C对象。

一本字典的工作原理,但如果您要存储原始数据类型值(需要装箱,例如NSNumber)或者有可能在更深层次上扩展数据(包含包含另一个字典的字典的字典),则可能很麻烦。此外,字典对象不是隐式输入的。

一个C struct的作品,但它也需要拳击,你不会从内存管理的可可集合语义中受益 - 你必须自己做。另外,对struct成员没有暗示支持copy/retain语义。

我通常会为集合数据类型声明一个Objective-C类,这些类型将被存储在集合中,如NSArray。在你的情况下,像

@interface MyData : NSObject 
@property (nonatomic, copy) NSString *firstString; 
@property (nonatomic, copy) NSString *secondString; 
@property (assign) NSInteger integer; 
@end 
1

如果您只是想要一个集合并需要迭代该集合,则可以选择一个Array。

如果您想通过除条目索引之外的其他键查找问题,请选择一个词典。

这是所有一般来说,当然,但你没有说明你需要使用字典的任何理由。请记住,您可以创建一个具有两个字符串和一个整数的类,并将该类型的对象放入数组中。

2

词典是键值对,所以它们不适合这里的账单。您可以使用包含数组的数组,或者使用包含字符串和整数值的自定义类的数组。

相关问题