2011-05-27 105 views
1

我只需要一些幫助來創建一個可以存儲多個字典的數組。 我:如何用字典創建數組?

.H

NSArray * projects; 
NSDictionary *project1; 
NSDictionary * project2; 

.M

projects = /* What should I write here to store the 
       above two dictionaries in my array. */ 

感謝,

回答

6
projects = [[NSArray alloc] initWithObjects:project1, project2, nil]; 
1

基本上(這將是正確的或不完全正確取決於你的實際代碼,聲明,屬性等)。因爲你宣佈projects作爲NSArray,你可以做到以下幾點:當它超出範圍,除非你保留它

projects = [NSArray arrayWithObjects: project1, project2, nil]; 

這個變量將消失神奇。

或者,如果你聲明projects作爲NSMutableArray並與屬性(retain, nonatomic)的屬性,你可以做這樣的事情:

NSMutableArray *a = [[NSMutableArray alloc] initWithObjects:project1, project2, nil]; 
self.projects = a; 
[a release]; 

有幾種方式來實現自己的目標,這取決於你的整體需求陣列。

+0

您對於可變對象的理解完全錯誤。 – kovpas 2011-05-27 20:46:33

+0

@kovpas:我不同意;我只是提供了一種替代方法,旨在探索如何初始化數組的可能性,因爲OP沒有真正提供有關陣列將如何使用的任何線索。也許OP不理解可變對象和不可變對象之間的區別,現在他們還有其他的東西需要去了解。也許你會解開我的答案...... – 2011-05-27 20:50:29

+0

所以,在這種情況下,你可以建議使用UITableView而不是NSArray。以防萬一,如果我們不知道OP真正想說些什麼;)。 – kovpas 2011-05-27 20:53:28

1

我不知道,如果你正在尋找的是更復雜那麼這個,而是:

projects = [[NSArray alloc ] initWithObjects:project1,project2, nil]; 

應該工作。

如果你在追求更復雜的東西,那麼這讓我知道我會修改我的答案。

+0

可以說我有n個數字化詞典,我希望它們都存儲在NSArray中,比如項目0,item1等。 – Ashutosh 2011-05-27 20:51:52

+0

Isn那不就是他寫的嗎?你將能夠從[projects objectAtIndex:n]獲取NSDictionary; – LuckyLuke 2011-05-27 20:54:18

+0

你是否確切地知道你會有多少個字典,或者每次調用這個類時數量會有所不同。如果你知道n,那麼你可以使用一個循環來通過調用InsertObject將每個字典添加到一個NSMutableArray中。http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference。 html – CodeGuru 2011-05-27 21:00:44

0
 
arr = [[NSArray alloc ] initWithObjects:dict1,dict2, nil];