专栏首页iOS 开发省 市 区(县) 街道(乡) plist 文件

省 市 区(县) 街道(乡) 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 条评论
登录 后参与评论

相关文章

  • Masnory 约束同行View

    developerbfl
  • 根据后台返回的UIButton title动态改变UIButton宽度

    developerbfl
  • 扩大button点击区域

    developerbfl
  • minigui/mgncs:解决Spinbox字体设置无效问题

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • Python操作腾讯云CVM

    客户有需求在非工作时间将腾讯云CVM停机,工作时间又开起来,停止可以在系统内写定时任务来,但启动需要在腾讯云平台,就需要使用腾讯云的API来进行操作,还好腾讯云...

    py3study
  • python3连接MySQL数据库

    py3study
  • 奇偶数线程交替执行问题

    一个面试题:两个线程,一个打印偶数,一个打印奇数,并且轮流打印,我们可以看到这种场景模式肯定是需要通过同步来实现,

    小勇DW3
  • DQN 的代码实现

    算法来自:Volodymyr Mnih,Playing Atari with Deep Reinforcement Learning

    杨熹
  • Quartz2D实战-画板工具

    czjwarrior
  • 神经网络模型解决分类问题的思考方式

    昨天介绍了神经网络的基本模型结构,可分类为前向传播神经网络,循环神经网络(RNN);介绍了神经网络中,梯度下降的原理推导,以小球下坡作为实例阐述梯度下降;分析了...

    人工智能的秘密

扫码关注云+社区

领取腾讯云代金券