2011-06-28 74 views
2


我想知道如何(如果有可能)創建一個NSDictionary爲每個鍵保存一個NSArray。如何創建一個包含每個鍵的數組的NSDictionary?

類似的東西:

@ 「FirstKey」 - [0],[1],[2],[3]
@ 「SecondKey」 - [0],[1],[2] ,[3]
@「ThirdKey」 - [0],[1],[2],[3]
@「FourthKey」 - [0],[1],[2],[3]

希望你有想法,謝謝!

回答

7

您可以添加NSArray實例(或任何其他集合)作爲NSDictionary值:

NSDictionary *d = [[NSMutableDictionary alloc] init]; 
[d setValue:[NSArray arrayWithObjects: 
       [NSNumber numberWithInteger:0], 
       [NSNumber numberWithInteger:1], 
       ..., 
       nil] 
    forKey:@"FirstKey"]; 
[d setValue:[NSArray arrayWithObjects: 
       [NSNumber numberWithInteger:0], 
       [NSNumber numberWithInteger:1], 
       ..., 
       nil] 
    forKey:@"SecondKey"]; 
//etc. 

另外,如果你沒有太多的鍵/值:

NSArray *values1 = [NSArray arrayWithObjects: 
        [NSNumber numberWithInteger:0], 
        [NSNumber numberWithInteger:1], 
        ..., 
        nil]; 
NSArray *values2 = [NSArray arrayWithObjects: 
        [NSNumber numberWithInteger:0], 
        [NSNumber numberWithInteger:1], 
        ..., 
        nil]; 
NSDictionary *d = [NSDictionary dictionaryWithObjectsAndKeys: 
        values1, @"FirstKey", 
        values2, @"SecondKey", 
        ..., 
        nil]; 
1

是的,你可以在字典中存儲任何對象。對於數字值,您需要將它們存儲爲NSValue或NSNumber對象。

+0

我想創建一個NSDictionary,每一個鍵是一個字符串,並擁有一個NSArray – Itamar

+0

是的,NSArray只是另一種對象。 – Dancreek

5

這完全有可能。最簡單的方法是創建您的NSArray,然後再加上一點爲對象,關鍵看你的NSDictionary

NSArray *myArray = [NSArray arrayWithObjects:@"One",@"Two", nil]; 
[myDictionary setObject:myArray forKey:@"FirstKey"]; 
+0

有什麼方法可以在實例方法中創建該方法嗎? – Itamar

+0

是的,只需使用'[NSDictionary initWithObjectsAndKeys:[NSArray arrayWithObjects:@「One」,@「Two」,nil],@「FirstKey」,nil];' –

相關問題