// // main.m // NSDictionary // // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // 1.如何创建 NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"lnj" forKey:@"name"]; NSString *name1 = [dict1 objectForKey:@"name"]; NSLog(@"name = %@", name1); //lnj NSLog(@"dict1 = %@", dict1); //dict1 = {name = lnj;} // 注意: key和value 是一一对应 NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:@[@"lnj", @"30", @"1.75"] forKeys:@[@"name", @"age", @"height"]]; NSLog(@"dict2 = %@", dict2); //{age = 30;height = "1.75";name = lnj;} NSLog(@"%@ %@ %@", [dict2 objectForKey:@"name"], [dict2 objectForKey:@"age"], [dict2 objectForKey:@"height"]); //NSDictionary *dict3 = @{key:value}; NSDictionary *dict4 = @{@"name": @"lnj"}; NSLog(@"%@", dict4[@"name"]); NSDictionary *dict5 = @{@"name":@"lnj", @"age":@"30", @"height":@"1.75"}; NSLog(@"dict5 = %@", dict5);//{age = 30;height = "1.75";name = lnj;} NSLog(@"%@ %@ %@", dict5[@"name"], dict5[@"age"], dict5[@"height"]); // 2.字典的遍历 NSDictionary *dict6 = @{@"name":@"lnj", @"age":@"30", @"height":@"1.75"}; // 2.1如何获取字典中key和value的个数, 在字典中key称之为键, value称之为值 NSLog(@"count = %lu", [dict6 count]); for (int i = 0; i < dict6.count; ++i) { // 获取字典中所有的key NSArray *keys = [dict6 allKeys]; // 取出当前位置对应的key NSLog(@"%@", keys[i]); NSString *key = keys[i]; NSString *value = dict6[key]; NSLog(@"key = %@, value = %@", key, value); } // 如何通过forin遍历字典, 会将所有的key赋值给前面的obj for (NSString *key in dict6) { NSLog(@"%@", key); NSString *value = dict6[key]; NSLog(@"key = %@, value = %@", key, value); } [dict6 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"key = %@, value = %@", key, obj); }]; // 3.字典文件读写 NSDictionary *dict7 = @{@"name":@"lnj", @"age":@"30", @"height":@"1.75"}; // XML 扩展名plist [dict7 writeToFile:@"/Users/mctc/Desktop/a.plist" atomically:YES]; // 注意: 字典和数组不同, 字典中保存的数据是无序的 NSDictionary *newDict8 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/mctc/Desktop/a.plist"]; NSLog(@"%@", newDict8);// {age = 30;height = "1.75";name = lnj;} NSArray *arr9 = @[@10, @20, @30, @5]; [arr9 writeToFile:@"/Users/mctc/Desktop/a.plist" atomically:YES]; return 0; }