#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//可變字典 NSMutableDictionary
//1.初始化方法
//創建一個空的字典
NSMutableDictionary *mDictionary1 = [NSMutableDictionary dictionary];
//創建一個有一個鍵值對的可變字典
NSMutableDictionary *mDictionary2 = [NSMutableDictionary dictionaryWithObject:@"Rick" forKey:@"name"];
//創建一個有多個鍵值對的可變字典
NSMutableDictionary *mDictionary3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age",@"GZ",@"address", nil];
//通過另一個字典創建一個字典
NSMutableDictionary *mDictionary4 = [NSMutableDictionary dictionaryWithDictionary:mDictionary3];
// NSArray *array = mDictionary4.allKeys;
// for (NSString *key in array) {
// NSLog(@"%@ = %@",key,mDictionary4[key]);
// }
NSEnumerator *enumerator = [[mDictionary4 allKeys] objectEnumerator];
NSString *key ;
while (key = [enumerator nextObject])
{
NSLog(@"%@ = %@",key,mDictionary4[key]);
}
//可變字典獨有的初始化方法
NSMutableDictionary *mDictionary5 = [NSMutableDictionary dictionaryWithCapacity:10];
//創建了初始大小爲10個鍵值對的可變字典。同樣的,參數 num 只是初始的大小,提高程序效率,並沒有限制字典的大小,如果繼續往裏面添加數據,字典的元素個數會繼續增加。
//從本地讀取字典
NSMutableDictionary *mDictionary6 = [NSMutableDictionary dictionaryWithContentsOfFile:@""];
//從網絡讀取字典
NSMutableDictionary *mDictionary7 = [NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@""]];
//操作字典
//增
[mDictionary5 setValue:@"Rick" forKey:@"name"];
[mDictionary5 setValue:@25 forKey:@"age"];
//改(如果原來字典中已有了key這個關鍵字,那麼這次新加的值就會覆蓋掉原來關鍵字(鍵)key對應的值)
[mDictionary5 setValue:@"Jack" forKey:@"name"];
//新語法改
mDictionary5[@"name"] = @"Leo";
//刪除指定key的對象
[mDictionary5 removeObjectForKey:@"name"];
//刪除所有對象
[mDictionary5 removeAllObjects];
NSLog(@"dic5 = %@",mDictionary5);
//例子
NSMutableDictionary *mDictionary8 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name1",@25,@"age",@"GZ",@"address",@"Rick",@"name2",@"Rick",@"name3", nil];
NSEnumerator *en = [[mDictionary8 allKeys] objectEnumerator];
NSString *key1;
while (key1 = [en nextObject]) {
NSLog(@"%@ = %@",key1, mDictionary8[key1]);
}
NSArray *keyD8 = mDictionary8.allKeys;
for (NSString *key in keyD8)
{
//
// NSString *string ;
// if ([mDictionary8[key] isKindOfClass:[NSNumber class]]) {
// int i = [mDictionary8[key] intValue];
// string = [NSString stringWithFormat:@"%d",i];
// }
// else
// {
// string = mDictionary8[key];
// }
NSString *string = mDictionary8[key];
if ([string isEqual:@"Rick"])
{
NSLog(@"key = %@",key);
}
}
}
return 0;
}
2015-12-16 09:54:19.626 OC_06_02[7083:253673] name = Rick
2015-12-16 09:54:19.628 OC_06_02[7083:253673] age = 25
2015-12-16 09:54:19.629 OC_06_02[7083:253673] address = GZ
2015-12-16 09:54:19.643 OC_06_02[7083:253673] dic5 = {
}
2015-12-16 09:54:19.644 OC_06_02[7083:253673] age = 25
2015-12-16 09:54:19.644 OC_06_02[7083:253673] name2 = Rick
2015-12-16 09:54:19.645 OC_06_02[7083:253673] name1 = Rick
2015-12-16 09:54:19.645 OC_06_02[7083:253673] name3 = Rick
2015-12-16 09:54:19.645 OC_06_02[7083:253673] address = GZ
2015-12-16 09:54:19.646 OC_06_02[7083:253673] key = name2
2015-12-16 09:54:19.646 OC_06_02[7083:253673] key = name1
2015-12-16 09:54:19.647 OC_06_02[7083:253673] key = name3
Program ended with exit code: 0