省 市 区(县) 街道(乡) plist 文件

最近项目中要加入地址选择,还是要四级的包含街道的,网上查到一大堆都是没用的,有的也只是一大堆的JOSN文件放哪里,好尴尬,于是动手整理了一份四级的Plist文件,分享出来供需要的人使用。

https://github.com/JLLJHD/AreaPlistDemo

获取plist文件数据
- (NSArray *)rootArray {
    if (!_rootArray) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"area" ofType:@"plist"];
        _rootArray = [[NSArray array] initWithContentsOfFile:path];
    }
    return _rootArray;
}

每级的解析如下:

//1. 获取省份
    [self.rootArray enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL * _Nonnull stop) {
        [self.arrayProvince addObject:obj[@"state"]];
    }];
//2. 随便获取一个省的城市
    NSMutableArray *citys = [NSMutableArray arrayWithArray:[self.arrayProvince objectAtIndex:12][@"cities"]];
    [citys enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL * _Nonnull stop) {
        [self.arrayCity addObject:obj];//获取市名 obj[@"city"]
    }];
//3. 随便获取一个城市的(县,区,等)
    NSMutableArray *countyAry = [NSMutableArray arrayWithArray:self.arrayCity[0][@"areas"]];
    [countyAry enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx, BOOL * _Nonnull stop) {
        [self.arrayArea addObject:obj];//获取区名字  obj[@"county"]
    }];
  //4. 随便获取一个(县,区,等)的(街道,乡,等)
    NSMutableArray *streetsAry = [NSMutableArray arrayWithArray:[self.arrayArea firstObject][@"streets"]];
    [streetsAry enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
        [self.arrayStreets addObject:obj];
    }];

至于整理成四级联动的PickerView 需要的话留言,我后续补上。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术总结

DWIntrosPage 简单定制引导页

下面摘取部分代码 DWIntrosPageContentViewController

1385
来自专栏编程之旅

iOS 全局禁止横屏,但视频播放界面选择性横屏的解决办法

有时我们的APP并没有适配横屏的需求,但是在个别视频播放界面,我们需要在播放视频的时候横屏,退出全屏的时候不能横屏,但是有时候并没有原生API并没有给出解决方案...

5762
来自专栏iOS122-移动混合开发研究院

实现iOS图片等资源文件的热更新化(四): 一个最小化的补丁更新逻辑

简介 ? 以前写过一个补丁更新的文章,此处会做一个更精简的最小化实现,以便于集成.为了使逻辑具有通用性,将剥离对AFNetworking和ReativeCoco...

2115
来自专栏岑志军的专栏

简单的计步器实现

1763
来自专栏iOS Developer

iOS开发之诱导用户为自己的App评论功能

1364
来自专栏iOS122-移动混合开发研究院

RDVTabBarController--可自由定制的iOS底部导航控件

RDVTabBarController:一个十分完善的tabBarController,可以自定义角标个数,爽的停不下来。 RDVTabBarControlle...

22310
来自专栏陈满iOS

iOS网络请求之上传图片:从示例到源码解析 -- 以上传Face++SDK回调的图片为例(HYNetworking,AFNetworking,XMNetworking)

本文一开始上传图片以调用HYNetworking的API为例,这个网络框架是以AFNetworking为基础进行的封装。HYNetworking内部实现上传图片...

2552
来自专栏LeeCen

AFNetworking的使用

AFNetworking是一个轻量级的iOS网络通信类库。它建立在NSURLConnection和NSOperation等类库的基础上,让很多网络通信功能的实现...

1221
来自专栏iOS 开发

UIButton扩展Block点击事件

1953
来自专栏学海无涯

iOS开发之UIView与UIViewController的生命周期总结

iOS开发中,创建View常见的两种方式一个是纯代码,一个是借助于XIB;创建ViewController常见的也有两种方式一个是纯代码,一个是借助于Story...

32010

扫码关注云+社区

领取腾讯云代金券