//建立不可改變的詞典 NSDictionary * dictionary; dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"good lucky",@"why",@"bye bye",@"how",nil]; //裡面的元素個數是奇數(不包括最後的 nil)的話是不可以的,偶數才行,因為是 id key 一組一組對應的 //輸出詞典的數量 NSLog(@"詞典的數量= %lu",[dictionary count]); /*得到詞典中所有的索引值的過程 NSEnumerator 用來遍曆集合中每一處索引的對象*/ //先得到裡面所有的索引值 objectEnumerator得到裡面的對象 keyEnumerator得到裡面的索引值 NSEnumerator * enumerator = [dictionary keyEnumerator];//把keyEnumerator替換為objectEnumerator即可得到value值(1) //定義一個不確定類型的對象 id object; //遍曆輸出 while(object = [enumerator nextObject]) { NSLog(@"索引值為:%@",object); //在這裡我們得到的是索引值,可以通過(1)得到,也可以通過這裡得到的索引值來得到它對應的value值 //通過NSDictionary對象的objectForKey方法來得到 //其實這裡定義objectValue這個對象可以直接用NSObject,因為我們已經知道它的類型了,id在不知道類型的情況下使用 id objectValue = [dictionary objectForKey:object]; if(objectValue != nil) { NSLog(@"%@所對應的value是 %@",object,objectValue); } } //建立可改變的詞典 它是動態 //需要我們初始化一個空間大小,用dictionaryWithCapacity NSMutableDictionary * mutableDictionary = [NSMutableDictionary dictionaryWithCapacity:5]; //這裡我們給的空間大小是5,當添加的資料超過的時候,它的空間大小會自動擴大 //添加資料,注意:id key 是成對出現的 [mutableDictionary setObject:@"good lucky" forKey:@"why"]; [mutableDictionary setObject:@"bye bye" forKey:@"how"]; //輸出 不用遍曆就得到索引值和value的方法,allKeys和allValues NSLog(@"輸出所有索引值=%@",[mutableDictionary allKeys]); NSLog(@"輸出所有的value=%@",[mutableDictionary allValues]); //動態體現在可以動態添加資料 現在修改索引值是why的value值, //然後在列印就會發現value是改變了,但是NSDictionary卻不可以修改 [mutableDictionary setObject:@"good" forKey:@"why"]; NSLog(@"輸出所有索引值=%@",[mutableDictionary allKeys]); NSLog(@"輸出所有的value=%@",[mutableDictionary allValues]); //動態刪除 //刪除指定索引值的資料 [mutableDictionary removeObjectForKey:..]; //刪除所有資料 [mutableDictionary removeAllObjects];
文章來源:http://blog.csdn.net/like7xiaoben/article/details/7526730