UITableView省市区字典

本文介绍如何定义省数组属性、模块化读取省市区字典数组、初始化数组并设置代理,实现TableView的展示及点击事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.

1.定义一个省数组的属性

@property(nonatomic,retain)NSMutableArray *proArr;

2.对数组初始化

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        [self creatData];

    }

    return self;

}

3.//模块化

-(void)creatData

{

    NSString *path=@"/Users/dlios/Desktop/UI08_tableView省市区字典数组/UI08_tableView省市区字典数组/area.txt";

    NSString *str=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

    NSArray *strArr=[str componentsSeparatedByString:@"\n"];

    self.proArr=[NSMutableArray array];

    for (NSString *temp in strArr) {

      if (![temp hasPrefix:@" "]) {

           NSMutableDictionary *proDic=          [NSMutableDictionary dictionary];

            [proDic setObject:temp forKey:@"proName"];

     NSMutableArray *cityArr=[NSMutableArray array];

            [proDic setObject:cityArr forKey:@"cityArr"];

       [self.proArr addObject:proDic];

           }else if([temp hasPrefix:@"  "] && ![temp hasPrefix:@"    "]){

            NSMutableDictionary *cityDic=[NSMutableDictionary dictionary];

            [cityDic setObject:temp forKey:@"cityName"];

     NSMutableArray *zoneArr=[NSMutableArray array];

  [cityDic setObject:zoneArr forKey:@"zoneArr"];

     NSMutableDictionary *proDic=[self.proArr lastObject];

       NSMutableArray   *cityArr=proDic[@"cityArr"];

       [cityArr addObject:cityDic];

        }else{

 NSMutableDictionary *proDic=[self.proArr lastObject];

  NSMutableArray *cityArr=proDic[@"cityArr"];

   NSMutableDictionary *cityDic=[cityArr lastObject];

  NSMutableArray *zoneArr=cityDic[@"zoneArr"];

         [zoneArr addObject:temp];

        }

}

for (NSMutableDictionary *prodic in self.proArr) {

        NSLog(@"%@",prodic[@"proName"]);

        NSMutableArray *cityArr=prodic[@"cityArr"];

        

    for (NSMutableDictionary *citydic in cityArr) {

        NSLog(@"%@",citydic[@"cityName"]);

        NSMutableArray *zoneArr=citydic[@"zoneArr"];

        for (NSString *name in zoneArr) {

            NSLog(@"%@",name);

        }

    }

    }

}


4.在ViewDidLoad里写

self.navigationController.navigationBar.translucent=NO;

       UITableView *tableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64) style:UITableViewStylePlain];

    tableView.delegate=self;

    tableView.dataSource=self;

    [self.view addSubview:tableView];

    [tableView release];

5.签2个协议,设置代理人

<UITableViewDataSource,UITableViewDelegate>


6.UITableViewDataSource有2个必须执行的协议方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return self.proArr.count;

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *reuse=@"reuse";

    UITableViewCell  *cell=[tableView dequeueReusableCellWithIdentifier:reuse];

    if (!cell) {

        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuse];

    }

    NSMutableDictionary *proDic=self.proArr[indexPath.row];

    cell.textLabel.text=proDic[@"proName"];

  return  cell;

}


7.UITableViewDelegate

//tableView的点击方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

(引头文件)

    LiaoNingViewController *liao=[[LiaoNingViewController alloc] init];

    [self.navigationController pushViewController:liao animated:YES];

    [liao release];

    NSMutableDictionary *proDic=self.proArr[indexPath.row];

    //省对应的市数组

    NSMutableArray *cityArr=proDic[@"cityArr"];

     //传市数组

    liao.arr=cityArr;

}


二.创建一个市的UIViewController

1.在.h里写一条属性,用来接收传过来的市数组

@property(nonatomic,retain)NSMutableArray *arr;

2.viewDidLoad里内容同上

UITableView *tableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64) style:UITableViewStylePlain];

    [self.view addSubview:tableView];

    tableView.delegate=self;

    tableView.dataSource=self;

    [tableView release];

2.签协议设代理人

3.实现协议方法

//点击方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

   ZoneViewController *zone=[[ZoneViewController alloc] init];

    [self.navigationController pushViewController:zone animated:YES];

    [zone release];

    NSMutableDictionary *citydic=self.arr[indexPath.row];

   zone.arr =citydic[@"zoneArr"];

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

        return self.arr.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    static NSString *reuse=@"reuse";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:reuse];

    if (!cell) {

        cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];

    }

    NSMutableDictionary *cityDic=self.arr[indexPath.row];

    cell.textLabel.text=cityDic[@"cityName"];

    return cell;

}


三.传区名,同上,在区的UIViewController里用一个数组接收传过来的区数组

(注意:引头文件,签协议,设置代理人,传递用到的都是属性传递,协议里的必须执行方法)



内容概要:本文探讨了在MATLAB/SimuLink环境中进行三相STATCOM(静态同步补偿器)无功补偿的技术方法及其仿真过程。首先介绍了STATCOM作为无功功率补偿装置的工作原理,即通过调节交流电压的幅值和相位来实现对无功功率的有效管理。接着详细描述了在MATLAB/SimuLink平台下构建三相STATCOM仿真模型的具体步骤,包括创建新模型、添加电源和负载、搭建主电路、加入控制模块以及完成整个电路的连接。然后阐述了如何通过对STATCOM输出电压和电流的精确调控达到无功补偿的目的,并展示了具体的仿真结果分析方法,如读取仿真数据、提取关键参数、绘制无功功率变化曲线等。最后指出,这种技术可以显著提升电力系统的稳定性电能质量,展望了STATCOM在未来的发展潜力。 适合人群:电气工程专业学生、从事电力系统相关工作的技术人员、希望深入了解无功补偿技术的研究人员。 使用场景及目标:适用于想要掌握MATLAB/SimuLink软件操作技能的人群,特别是那些专注于电力电子领域的从业者;旨在帮助他们学会建立复杂的电力系统仿真模型,以便更好地理解STATCOM的工作机制,进而优化实际项目中的无功补偿方案。 其他说明:文中提供的实例代码可以帮助读者直观地了解如何从零开始构建一个完整的三相STATCOM仿真环境,并通过图形化的方式展示无功补偿的效果,便于进一步的学习研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值