基于Objective-C OC的省市区代码(建立省市区类 与数组)

来源:互联网 发布:京东java面试经验 编辑:程序博客网 时间:2024/06/05 04:28

前几天发了一个 字典与数组嵌套的 划分省市区的代码,今天给大家带来的是用类保存数据的方式 相比之下代码量更加 简洁

首先需要建立三个类 Province City Zone   

Province类中建立了 proName 属性来保存 当前的省 cityArray数组属性来保存该省的城市,

City类中创创建了 cityName 来保存当前市的名字  zoneArray数组 来存放属于他的区

Zone类 ,这个类可有可无,为了看起来统一 在里面建立一个 zoneName 属性 来存放区名字

在写初始化函数时(省,市),仅传进来一个name 即可   在初始化函数中直接 定义一个数组 ,

-(id)initWithProName:(NSString *)proName{    self =[super init];        if (self) {        _proName = proName;        _citysArray = [NSMutableArray array];    }    return self;}


以下是主函数代码片段

#import <Foundation/Foundation.h>#import "Province.h"#import "City.h"#import "Zone.h"
<span style="font-family: Arial, Helvetica, sans-serif;">int main(int argc, const char * argv[]) {</span>
    @autoreleasepool {        NSString *path = @"/Users/dllo/Desktop/项目程序源文件/Objective-C程序/prio/prio/area.txt";                        NSString *text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];                NSArray * lines =  [text componentsSeparatedByString:@"\n"];        //用来存放所有的 省对象        NSMutableArray *country = [NSMutableArray array];                        //遍历        for (NSString *line in lines) {                               if (![line hasPrefix: @" "]) {                Province *province = [[Province alloc]initWithProName:line];  //创建一个省 在省的初始化函数中自动建立了cityArray数组                //                [country addObject:province];                                            }else if ( ![line hasPrefix:@"   " ] )            {                City *city = [[City alloc ] initWithCityName:line];                                [[[country lastObject ] citysArray] addObject:city];                            }else{                Zone *zone = [[Zone alloc] initWithZoneName:line];                                [[[[[country lastObject ] citysArray] lastObject ] zonesArray ] addObject:zone];                            }        }                                  //遍历输出下        for (Province *pro in country) {            NSLog(@"%@",[pro proName]);            for (City *city in [pro citysArray]) {                NSLog(@"%@",[city cityName]);                                for (Zone *zone in [city zonesArray]) {                    NSLog(@"%@",[zone zoneName]);                }            }                   }                  }    return 0;}



1 0
原创粉丝点击