OC中用字典创建一个具有省市区的应用(简单的字典运用代码)

2024-06-16 20:32

本文主要是介绍OC中用字典创建一个具有省市区的应用(简单的字典运用代码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

</pre><pre name="code" class="objc">#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {// 准备工作NSString *path = @"/Users/dllo/Desktop/area.txt";// 根据路径产生相应的字符串NSString *str  =[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];// 对字符串进行逐行切割NSArray *strArr = [str componentsSeparatedByString:@"\n"];// 创建一个省数组NSMutableArray *proArr = [NSMutableArray array];for (NSString *temp in strArr) {if (![temp hasPrefix:@" "]) {// 创建省字典NSMutableDictionary *proDic = [NSMutableDictionary dictionary];// 给省字典添加键值对// 省名[proDic setObject:temp forKey:@"proName"];// 创建一个市数组NSMutableArray *cityArr = [NSMutableArray array];// 把市数组作为第二对键值对添加到字典中[proDic setObject:cityArr forKey:@"cityArr"];// 把省字典放入到省数组中[proArr addObject:proDic];} else if([temp hasPrefix:@"  " ] &&  ![temp hasPrefix:@"    "]){// 找到对应城市// 创建市字典NSMutableDictionary *cityDic = [NSMutableDictionary dictionary];// 第一对键值对 市名[cityDic setObject:temp forKey:@"cityName"];// 第二队键值对 区数组NSMutableArray *zoneArr = [NSMutableArray array];[cityDic setObject:zoneArr forKey:@"zoneArr"];// 给市字典找一个位置// 先找到对应的省字典NSMutableDictionary *proDic = [proArr lastObject];// 然后再找对应的市数组NSMutableArray *cityArr = proDic[@"cityArr"];[cityArr addObject:cityDic];} else {// 先找省字典NSMutableDictionary *proDic = [proArr lastObject];// 市数组NSMutableArray *cityArr = proDic[@"cityArr"];// 市字典NSMutableDictionary *cityDic = [cityArr lastObject];// 区数组NSMutableArray *zoneArr = cityDic[@"zoneArr"];// 添加[zoneArr addObject:temp];}}// forin遍历省数组名for (NSMutableDictionary *dic in proArr) {NSLog(@"------------------");NSLog(@"%@",dic[@"proName"]);NSLog(@"------------------");NSMutableArray *cityArr = dic[@"cityArr"];for (NSMutableDictionary *cityDic in cityArr) {NSLog(@"%@",cityDic[@"cityName"]);NSLog(@"***************");NSMutableArray *zoneArr = cityDic[@"zoneArr"];for (NSString *str in zoneArr) {NSLog(@"%@",str);NSLog(@"***************");}}}return 0;
}
代码中已给出详细注释

这篇关于OC中用字典创建一个具有省市区的应用(简单的字典运用代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067468

相关文章

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

MybatisPlus中几种条件构造器运用方式

《MybatisPlus中几种条件构造器运用方式》QueryWrapper是Mybatis-Plus提供的一个用于构建SQL查询条件的工具类,提供了各种方法如eq、ne、gt、ge、lt、le、lik... 目录版本介绍QueryWrapperLambdaQueryWrapperUpdateWrapperL

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

SpringBoot实现图形验证码的示例代码

《SpringBoot实现图形验证码的示例代码》验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用Hutool提供的小工具实现,本文介绍Sp... 目录项目创建前端代码实现约定前后端交互接口需求分析接口定义Hutool工具实现服务器端代码引入依赖获