MST

星途 面试题库

面试题:Objective-C中字典的常用初始化方式有哪些

请详细列举Objective-C中初始化字典(`NSDictionary`和`NSMutableDictionary`)的常见方式,并分别给出代码示例。
44.3万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

初始化NSDictionary

  1. 使用dictionaryWithObjects:forKeys:count:方法 该方法通过给定的对象数组和键数组以及数量来初始化字典。
    NSArray *keys = @[@"name", @"age"];
    NSArray *objects = @[@"John", @25];
    NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys count:2];
    NSLog(@"%@", dict);
    
  2. 使用dictionaryWithObject:forKey:方法 该方法通过单个对象和键来初始化字典。
    NSDictionary *dict2 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];
    NSLog(@"%@", dict2);
    
  3. 使用字面量语法 这是一种简洁的初始化方式。
    NSDictionary *dict3 = @{@"name": @"Jane", @"city": @"New York"};
    NSLog(@"%@", dict3);
    

初始化NSMutableDictionary

  1. 使用init方法 先创建一个空的可变字典,然后通过setObject:forKey:方法添加键值对。
    NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc] init];
    [mutableDict setObject:@"Alice" forKey:@"name"];
    [mutableDict setObject:@30 forKey:@"age"];
    NSLog(@"%@", mutableDict);
    
  2. 使用dictionary方法 类似init方法,先创建一个空的可变字典,再添加键值对。
    NSMutableDictionary *mutableDict2 = [NSMutableDictionary dictionary];
    [mutableDict2 setObject:@"Bob" forKey:@"name"];
    [mutableDict2 setObject:@35 forKey:@"age"];
    NSLog(@"%@", mutableDict2);
    
  3. 使用dictionaryWithCapacity:方法 创建一个具有指定初始容量的可变字典,然后添加键值对。
    NSMutableDictionary *mutableDict3 = [NSMutableDictionary dictionaryWithCapacity:5];
    [mutableDict3 setObject:@"Charlie" forKey:@"name"];
    [mutableDict3 setObject:@40 forKey:@"age"];
    NSLog(@"%@", mutableDict3);
    
  4. 从已有字典初始化 可以从一个不可变字典创建一个可变字典。
    NSDictionary *originalDict = @{@"color": @"red", @"number": @1};
    NSMutableDictionary *mutableDict4 = [NSMutableDictionary dictionaryWithDictionary:originalDict];
    [mutableDict4 setObject:@"blue" forKey:@"color"];
    NSLog(@"%@", mutableDict4);