Dictionary的用法
1 atomically:原子性,当文件内容写入成功之后再创建文件。 2 3 NSArray *keys = [NSArray arrayWithObjects:@"name", @"age", nil]; 4 NSArray *values = [NSArray arrayWithObjects:@"wzx", [NSNumber numberWithInt:16], nil]; 5 NSDictionary *dict = [NSDictionary dictionaryWithObjects:values forKeys:keys]; 6 7 // NSDictionary是不可变的 8 NSDictionary *dict = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"]; 9 10 // 最常用的初始化方式 11 dict = [NSDictionary dictionaryWithObjectsAndKeys: 12 @"v1", @"k1", 13 @"v2", @"k2", 14 @"v3", @"k3", nil]; 15 16 NSArray *objects = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil]; 17 NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil]; 18 dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 19 NSLog(@"%@", dict); 20 21 22 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 23 @"v1", @"k1", 24 @"v2", @"k2", 25 @"v3", @"k3", nil]; 26 27 // count是计算有多少个键值对(key-value) 28 NSLog(@"count=%zi", dict.count); 29 30 // 由于NSDictionary是不可变的,所以只能取值,而不能修改值 31 id obj = [dict objectForKey:@"k2"]; 32 NSLog(@"obj=%@", obj); 33 34 // 将字典写入文件中 35 NSString *path = @"/Users/apple/Desktop/dict.xml"; 36 [dict writeToFile:path atomically:YES]; 37 38 // 从文件中读取内容 39 dict = [NSDictionary dictionaryWithContentsOfFile:path]; 40 NSLog(@"dict=%@", dict); 41 42 43 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 44 @"v1", @"k1", 45 @"v2", @"k2", 46 @"v3", @"k3", nil]; 47 // 返回所有的key 48 NSArray *keys = [dict allKeys]; 49 //NSLog(@"keys=%@", keys); 50 51 NSArray *objects = [dict allValues]; 52 //NSLog(@"objects=%@", objects); 53 54 // 根据多个key取出对应的多个value 55 // 当key找不到对应的value时,用marker参数值代替 56 objects = [dict objectsForKeys:[NSArray arrayWithObjects:@"k1", @"k2", @"k4", nil] notFoundMarker:@"not-found"]; 57 NSLog(@"objects=%@", objects); 58 59 60 #pragma mark 遍历字典 61 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 62 @"v1", @"k1", 63 @"v2", @"k2", 64 @"v3", @"k3", nil]; 65 // 遍历字典的所有key 66 for (id key in dict) { 67 id value = [dict objectForKey:key]; 68 NSLog(@"%@=%@", key, value); 69 } 70 71 72 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 73 @"v1", @"k1", 74 @"v2", @"k2", 75 @"v3", @"k3", nil]; 76 // key迭代器 77 NSEnumerator *enumer = [dict keyEnumerator]; 78 id key = nil; 79 while ( key = [enumer nextObject]) { 80 id value = [dict objectForKey:key]; 81 NSLog(@"%@=%@", key, value); 82 } 83 84 // 对象迭代器 85 // [dict objectEnumerator]; 86 87 88 89 //block 90 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 91 @"v1", @"k1", 92 @"v2", @"k2", 93 @"v3", @"k3", nil]; 94 [dict enumerateKeysAndObjectsUsingBlock: 95 ^(id key, id obj, BOOL *stop) { 96 NSLog(@"%@=%@", key, obj); 97 }]; 98