iOS searchbar实现汉字更具拼音首字母排序

最近在做一个地图相关的应用,涉及到全国城市的切换,于是打算把这个记录下来

用到的主要东西有:百度的全国城市列表,txt格式,jasonkit数据解析第三方,tableview,searchabar,汉字转拼音。

\

1.首先拿到的是百度的全国城市列表,因为是txt格式的,比较好处理,而且附带经纬度(虽然百度的是火星坐标,但处理起来那是后面的事情,总比没有强),高德的是pdf格式,没有经纬度。这份文件要做些适当的修改不然不能够解析为jason类型。百度的文件做了加密,这里还需要解码~真坑爹,好在不是很复杂,jason在这里只现身一次,得到所需要的字典

\

2.汉字转拼音,这个是为了排序和后面的搜索用的,当然,汉字转拼音也是用的代码行,一样很强大,速度也不慢,有一点需要强调的是,转换的时候两个if语句必须都要写上,不然不起作用,这个没细研究。封装好的city对象有名字,拼音,经纬度

\

3.排序:因为数组内存放的都是对象,所以需要对对象的某个属性排序才行,这里用的是拼音,方法也很简单\\

4.获得所有城市的首字母并将相同首字母的城市封装在同一个城市

列表显示城市列表是按照首字母显示的,所以这个很必要

\

最后需要三个数组

A:首字母数组;B:所有城市数组;C:按首字母分类好的所有城市列表

\

5.展示所有城市,tableview加载现成的数组,体力活

\


6.搜索

搜索的关键是按照拼音和汉字进行搜索的

\

拼音搜索的

http://download.csdn.net/detail/map625/6944965

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值