2011-04-12 60 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

詞典是鍵值對,所以它們不適合這裏的賬單。您可以使用包含數組的數組,或者使用包含字符串和整數值的自定義類的數組。

相關問題