2012-11-15 47 views
5

我是一個新的Iphone開發者,我需要你的幫助,如何在xcode中創建數組鍵和值?

任何人都可以創建帶有鍵和值的數組,以及如何在xcode中獲取數組。

+0

你只想創建數組。 – NSCool

+0

你是指鍵值對還是你需要一個二維數組? –

回答

11

這是NSMutableDictionary。您可以搜索示例代碼。 例如:Create dict

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; 
[dictionary setObject:@"object1" forKey:@"key1"]; 

打印快譯通的所有鍵和值:

for (NSString* key in [dictionary allKeys]) { 
    NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]); 
} 
+0

你能提供我一個簡單的例子嗎? – user1825965

+0

已被添加到答覆中。 – Dave

+0

我想知道我可以通過循環獲取? – user1825965

2

這正是一個的NSDictionary /的NSMutableDictionary做:

NSMutableDictionary *myDictionary = [[ NSMutableDictionary alloc] init]; 
[ myDictionary setObject:@"John" forKey:@"name"]; 
[ myDictionary setObject:@"Developer" forKey:@"position"]; 
[ myDictionary setObject:@"1/1/1984" forKey:@"born"]; 

所不同的是,在可變的,你可以在創建之後添加/修改條目,但不能在其他條目中添加/修改條目。

4

您可以使用一個NSDictionaryNSmutabledictionary來實現這個你不需要使用和NSArray。這是一個如何工作的例子。

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; // Don't always need this 
    // Note you can't use setObject: forKey: if you are using NSDictionary 
    [dict setObject:@"Value1" forKey:@"Key1"]; 
    [dict setObject:@"Value2" forKey:@"Key2"]; 
    [dict setObject:@"Value3" forKey:@"Key3"]; 

然後你就可以通過這樣做來獲取一個鍵的值。

NSString *valueStr = [dict objectForKey:@"Key2"]; 

這將在valueStr字符串中給出Value2的值。

將對象添加到一個沒有易變的字典NSDictionary只是做

NSDictionary *dict2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Value1", @"Key1", @"Value2", @"Key2", nil]; 

然後只需檢索的方式爲NSMutableDictionary相同。兩者之間的區別在於Mutable字典可以在創建後修改,因此可以用setObject:forKey向其添加對象,並使用removeObjectFroKey:刪除對象,而無可修改的字典無法修改,因此一旦創建了字典,它已經發布,所以不需要添加或刪除對象。

希望這會有所幫助。

+0

如何通過循環獲取此數組,循環顯示鍵和值。 提取方式 NSString * valueStr = [dict objectForKey:@「Key2」]; 我需要通過循環獲取所有的鍵和值,我需要在數組中搜索值。 – user1825965

+0

@ user1825965那麼你能夠在for循環中獲得值和鍵? – Popeye

0

如果您不需要添加對象了,你可以創建一個非可變詞典:

NSDictionary* dict= @{ @"key1" : @"value1" , @"key2" : @"value2" }; 

如果你不需要的鍵值對,是一個數組:

NSArray* array= @[ @"value1" , @"value2", @"value3" ];