目前,我的iPhone應用程序使用NSMutableArrays來保存NSStrings。我有更多的信息要與每個數組中的每個條目關聯。例如,以前我只有一件事要放入一個字符串Array1 [0]。然而,現在,與字符串一起,我想將另一個字符串和一個整數關聯起來。我想是這樣的:我應該使用什麼樣的集合類?
老:[字符串]
新[字符串,字符串,整數]
我想用一本字典,但我真的不知道,如果它是正確的。有什麼建議?
目前,我的iPhone應用程序使用NSMutableArrays來保存NSStrings。我有更多的信息要與每個數組中的每個條目關聯。例如,以前我只有一件事要放入一個字符串Array1 [0]。然而,現在,與字符串一起,我想將另一個字符串和一個整數關聯起來。我想是這樣的:我應該使用什麼樣的集合類?
老:[字符串]
新[字符串,字符串,整數]
我想用一本字典,但我真的不知道,如果它是正確的。有什麼建議?
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
如果您只是想要一個集合並需要迭代該集合,則可以選擇一個Array。
如果您想通過除條目索引之外的其他鍵查找問題,請選擇一個詞典。
這是所有一般來說,當然,但你沒有說明你需要使用字典的任何理由。請記住,您可以創建一個具有兩個字符串和一個整數的類,並將該類型的對象放入數組中。
詞典是鍵值對,所以它們不適合這裏的賬單。您可以使用包含數組的數組,或者使用包含字符串和整數值的自定義類的數組。