面试题答案
一键面试初始化NSDictionary
- 使用
dictionaryWithObjects:forKeys:count:
方法 该方法通过给定的对象数组和键数组以及数量来初始化字典。NSArray *keys = @[@"name", @"age"]; NSArray *objects = @[@"John", @25]; NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys count:2]; NSLog(@"%@", dict);
- 使用
dictionaryWithObject:forKey:
方法 该方法通过单个对象和键来初始化字典。NSDictionary *dict2 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"]; NSLog(@"%@", dict2);
- 使用字面量语法
这是一种简洁的初始化方式。
NSDictionary *dict3 = @{@"name": @"Jane", @"city": @"New York"}; NSLog(@"%@", dict3);
初始化NSMutableDictionary
- 使用
init
方法 先创建一个空的可变字典,然后通过setObject:forKey:
方法添加键值对。NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc] init]; [mutableDict setObject:@"Alice" forKey:@"name"]; [mutableDict setObject:@30 forKey:@"age"]; NSLog(@"%@", mutableDict);
- 使用
dictionary
方法 类似init
方法,先创建一个空的可变字典,再添加键值对。NSMutableDictionary *mutableDict2 = [NSMutableDictionary dictionary]; [mutableDict2 setObject:@"Bob" forKey:@"name"]; [mutableDict2 setObject:@35 forKey:@"age"]; NSLog(@"%@", mutableDict2);
- 使用
dictionaryWithCapacity:
方法 创建一个具有指定初始容量的可变字典,然后添加键值对。NSMutableDictionary *mutableDict3 = [NSMutableDictionary dictionaryWithCapacity:5]; [mutableDict3 setObject:@"Charlie" forKey:@"name"]; [mutableDict3 setObject:@40 forKey:@"age"]; NSLog(@"%@", mutableDict3);
- 从已有字典初始化
可以从一个不可变字典创建一个可变字典。
NSDictionary *originalDict = @{@"color": @"red", @"number": @1}; NSMutableDictionary *mutableDict4 = [NSMutableDictionary dictionaryWithDictionary:originalDict]; [mutableDict4 setObject:@"blue" forKey:@"color"]; NSLog(@"%@", mutableDict4);