oc75--不可变字典NSDictionary

简介:
复制代码
//
//  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;
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7441030.html,如需转载请自行联系原作者

相关文章
|
8月前
|
人工智能 运维 监控
AI辅助的运维流程自动化:实现智能化管理的新篇章
AI辅助的运维流程自动化:实现智能化管理的新篇章
1323 22
|
人工智能 运维 Devops
云效流水线智能排查功能实测:AI赋能DevOps,精准定位与高效修复实战评测
云效持续集成流水线Flow是阿里云提供的企业级CICD工具,免费且注册即用。它具备高可用性、免运维、深度集成阿里云服务、多样化发布策略及丰富的企业级特性。产品亮点包括智能排查功能,能快速定位问题,提高问题解决效率。云效Flow支持一站式DevOps流程,适用于各种规模的企业,助力实现高效、高质量的软件交付。现在即可免费试用,体验智能CICD解决方案。
|
分布式计算 大数据 BI
MaxCompute产品使用合集之MaxCompute项目的数据是否可以被接入到阿里云的Quick BI中
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
12月前
|
JSON JavaScript API
编写REST API
编写REST API
209 2
|
分布式计算 并行计算 数据处理
|
JavaScript 前端开发 IDE
使用TypeScript进行现代JavaScript开发
【5月更文挑战第15天】TypeScript是JavaScript的超集,提供静态类型检查、接口、类和更好的工具支持,提升代码质量和开发效率。它的关键特性包括类型注解、接口和泛型。在使用时,建议逐步引入到现有项目,充分利用IDE,编写清晰的类型定义,并使用linting工具。TypeScript是现代JavaScript开发的有力工具,尤其适合大型项目。
|
消息中间件 Linux 芯片
RT-Thread快速入门-体验RT-Thread
RT-Thread快速入门-体验RT-Thread
271 0
RT-Thread快速入门-体验RT-Thread
|
前端开发 JavaScript 算法
【web前端技术】响应式画廊Gallery插件-Justified-Gallery
【web前端技术】响应式画廊Gallery插件-Justified-Gallery
374 0
|
传感器 定位技术
【DIY无人机】主控程序
如何自己动手制作一个飞控?
852 1
【DIY无人机】主控程序
|
设计模式 Java
Java设计模式七大原则-单一职责原则
Java设计模式七大原则-单一职责原则
202 0