关于包含地图的ios应用,省市地名为本地json格式的解析以及加载到tabview上数据的构建
来源:互联网 发布:货运数据 量化投资 编辑:程序博客网 时间:2024/06/05 22:57
今天在做应用的时候发现坑爹的服务器将地名做成了本地的json文件,刚开始看的时候感觉很简单,但是做的时候就发现,解析出来的数据需要重新构造数据结构再加载到tableview上面,困扰了我足足有两个小时,下面是自己的一些小思想,具体见如下的代码:
-(void)loadData
{
NSError *error=nil;
NSString *filePath=[[NSBundlemainBundle]pathForResource:@"areasheng"ofType:@"json"];//首先获取文件的路径
NSData *data=[NSDatadataWithContentsOfFile:filePath];//根据文件路径将其转成data类型的数据
NSArray *arry=[NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableLeaveserror:&error];//根据json数据的结构来确定用字典还是数组来接收请求回来的数据
NSMutableArray *dataArr=[NSMutableArrayarray];
if (error) {
NSLog(@"%@",error);//判断是否解析出现错误,如果出现错误要记得分析原因
}
for (NSDictionary *tempin arry) {
ProvienceModel *model=[[ProvienceModelalloc]initWithDictionary:temp];
model.letterName=[[ChineseToPinyinpinyinFromChiniseString:model.name]substringToIndex:1];//ChineseToPinyin是汉字转拼音的一个第三方库其中有+方法pinyinFromChiniseString
[dataArraddObject:model];
}
NSArray *ResultArr=[dataArrsortedArrayUsingComparator:^NSComparisonResult(ProvienceModel *obj1,ProvienceModel *obj2) {
return [obj1.letterNamecompare:obj2.letterNameoptions:NSNumericSearch];
}];//通过循环比较数组里面数据的letterName来对数组进行排序,从而得到新的数组
NSMutableArray *tempArrForGroup=nil;
BOOL flag=NO;//设置一个flag来标记什么时候要将数据存入大数组self.ProvienceList
for (NSInteger index=0; index<ResultArr.count; index++) {
ProvienceModel *model=ResultArr[index];
if (![self.SectionHeadercontainsObject:model.letterName]) {
[self.SectionHeaderaddObject:model.letterName];//self.SectionHeader是用来保存索引使用的数组
tempArrForGroup =[[NSMutableArrayalloc]initWithObjects:nil];//当每次有新数据的时候要将tempArrForGroup数组初始化从来加载后续的数据
flag=NO;
}
if ([self.SectionHeadercontainsObject:model.letterName]) {
[tempArrForGroupaddObject:model];
if (flag==NO) {
[self.ProvienceListaddObject:tempArrForGroup];
flag=YES;
}
}
}
NSLog(@"%@",self.ProvienceList);//最后打印一下看数据结构是否正确,如果正确就可以进行加载数据的操作了
}
如有不正确的地方还请大家指正
- 关于包含地图的ios应用,省市地名为本地json格式的解析以及加载到tabview上数据的构建
- 省市联动的JSON格式数据
- 将json格式的数据保存到本地
- 解析json格式的数据
- iOS开发中,打包为ipa格式的软件包以及怎么安装到手机终端上
- json格式的数据应用
- Highmaps的天津地图数据JSON格式
- iOS中解析json格式数据的各种方法调用
- iOS --- 使用NSJSONSerialization来解析JSON格式的数据
- iOS中解析json格式数据的各种方法调用
- iOS开发之JSON格式数据的生成与解析
- ios中将单个字典转换成json格式以及json格式的转换成字典解析
- 解析数组里面包含数组的json格式的数据代码
- ios 简单的本地json格式文件解析
- json格式解析在android的应用
- JSON格式的天气信息解析并储到本地SharedPreferences
- iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上
- java解析json格式的数据
- uva--185+dfs
- 数组1
- iOS:SDWebImage使用详解
- Oracle安装与卸载
- 第11周 项目2-1 两数最大公约数
- 关于包含地图的ios应用,省市地名为本地json格式的解析以及加载到tabview上数据的构建
- 第十一周项目6-回文素数3
- apatch zipoutputstream 进行解压缩时提示:不可预料的压缩文件末端
- android手机助手---界面篇(1)
- Prim算法
- C++中的关键字
- 修改eclipse中xml文件里面的属性值为非斜体字
- Visual C++ 6.0如何配置文件以及无法使用配置文件(Profile)的解决方案
- prim算法,可读取文件