从网络上下载省份城市名称并存入文件然后进行读取省份城市

//实现的功能是 从后台拿到城市的省份以及名称,然后保存在本地的沙盒中 在使用的时候再拿出来用。

步骤1

//向后台请求数据

 //忽略缓存
    [RequestTools postJSONWithUrl:G.YB_GetZoneList parameters:@{} success:^(id responseObject) {
        NSError *error = nil;
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error];
        if (error) {
            NSLog(@"json error:%@",error);
        } else {
            if (![dic[@"code"] isEqualToString:@"GOOD"]) {
                return;
            }
            if (![[dic objectForKey:@"content"] isKindOfClass:[NSNull class]]) {
                //对数据进行解析
                NSArray *provinces = [dic objectForKey:@"content"];
                if (provinces.count > 0) {
                    //重要代码
                    [[AccountManager shareManager] cacheCitiesInfomation:provinces];
                    _locationArray = [[AccountManager shareManager] getCitiesInfomation];
                }
            }

        }

    } fail:^(id obj) {
        NSLog(@"error:%@",obj);
    }];

步骤二:将解析到到的数据存起来

///缓存地区信息
- (void)cacheCitiesInfomation:(NSArray *)provincesDic{
    NSString *citiesPath = [self getPathWithFileName:@"cities.data"];
    [provincesDic writeToFile:citiesPath atomically:YES];
}
- (NSString *)getPathWithFileName:(NSString *)fileName{
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    return [path stringByAppendingPathComponent:fileName];
}

步骤三:从文件中读取信息

///读取地区信息
- (NSArray *)getCitiesInfomation{
    NSString *citiesPath = [self getPathWithFileName:@"cities.data"];
    NSArray *provincesDic = [[NSArray alloc] initWithContentsOfFile:citiesPath];
    if (provincesDic==nil || provincesDic.count==0) {
        return nil;
    }
    NSMutableArray *provinces = [NSMutableArray array];
    for (NSDictionary *proDic in provincesDic) {
        FCZoneProvince *province = [[FCZoneProvince alloc] init];
        province.provinceName = proDic[@"provinceName"];
        //某一省下的所有市
        NSArray *citiesDic = proDic[@"cities"];
        NSMutableArray *cities = [NSMutableArray array];
        for (NSDictionary *cityDic in citiesDic) {
            FCZoneCity *city = [[FCZoneCity alloc] init];
            city.cityName = cityDic[@"cityName"];
            //某一城市下的所有区
            NSArray *countriesDic = cityDic[@"counties"];
            NSMutableArray *coutries = [NSMutableArray array];
            for (NSDictionary *countryDic in countriesDic) {
                FCZoneCountry *country = [[FCZoneCountry alloc] init];
                country.countryName = countryDic[@"countyName"];
                if ([country.countryName isEqualToString:@"市辖区"]) {
                    continue;
                }
                [coutries addObject:country];
            }
            city.countries = coutries;
            [cities addObject:city];
        }
        province.cities = cities;
        [provinces addObject:province];
    }
    return provinces;
}

这样就获得了    provinces  and  cities

在这里我只是提供一个这样的思路,有了思路估计很快就可以上手了吧。

时间: 2024-08-28 16:43:01

从网络上下载省份城市名称并存入文件然后进行读取省份城市的相关文章

Android 异步从网络上下载图片

package com.example.android_asynctask; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClie

JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)

一  前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件,接着上次已经下载的部分文件继续下载.另外将程序名从JWebFileTrans更改为JDownload,并从github的utility repository中独立出来专门维护,后续会添加多线程.ftp下载等功能.JDownload的github链接请点击JDownload源代码 . 另外时隔三个月后

Android从网络上下载图片实现

1.背景介绍 网络上图片的请求,是我们最常见的网络请求之一,不亚于对json/xml数据的请求.一般要展示给用户看的,都不会是纯粹的文字,往往都是图文信息.而在移动互联网时代,图文又往往需要最新的资讯,数据都是从网络上获取. 像我们都在使用的微信,它的朋友圈中就好多图文信息:使用的新浪微博,用户的图标也是图片信息,等等诸如此类.由此可见,对于图片的请求处理,非常重要,我们做开发的应该掌握.今天介绍一下笔者在开发Android项目过程中使用过的一些代码. 2.思路分析 (1)取得与服务器的连接 (

从网络上下载文件

文件的下载: 使用HTTP协议下载文件 ·创建一个HttpURLConnection对象 HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection(); ·获得一个InputStream对象 urlConn.getInputStream() ·访问网络的权限 android.permission.INTERNET ·从网络上下载文件夹 HttpDownload.java中的代码: public class Http

网络上下载图片

最新版SDWebImage的使用 http://www.cocoachina.com/ios/20141212/10622.html ios 从网络下载图片,保存,并用imageview从保存中显示: http://www.cnblogs.com/PirateCaptain/articles/2538575.html

用进度条显示从网络上下载文件进度

/* * 根据上课的案例,利用进度条控件程序进行下载操作.... */public class Aty_HttpDownLoad_ProgressBar extends Activity { private ProgressBar pB; private TextView tv_progress; private static final int DOWNLOADING=1; private static final int DOWNLOAD_SUCCESS=2; private double

从网络上下载文件的两种方法

两种方法使用的Com函数都来源于UrlMon,记得先引用. 一.URLDownloadToFile 直接下载文件到磁盘,URLDownloadToFile声明如下: function URLDownloadToFile(    Caller: IUnknown;     URL: PWideChar;           { 下载的路径 }    FileName: PWideChar;   { 保存到的路径 }    Reserved: DWORD;    StatusCB: IBindSta

从网络上下载文件到sd卡上

String SDPATH = Environment.getExternalStorageDirectory() + "/"; String path = SDPATH + "files/"; /** * 此文件支持下载docx,pdf,xls,jpg, * @param urlStr * @param path * @param fileName * @return * -1:文件下载出错 * 0:文件下载成功 * 1:文件已经存在 */ public int

从网络上下载数据

/// <summary> /// 售房网下载数据 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string GetResponseString(string url) { string _StrResponse = ""; HttpWebRequest _WebReque