iOS tableView 数据处理,数据分类相同数据整合、合并计算总数总价
//
数据下载得到数组数据
modelArray = [MZPriceModel mj_objectArrayWithKeyValuesArray:data[@"info"]];
if (modelArray.count>) {
// 分类的数组
sectionArray = [self distinguishArrayWithArray:modelArray];
//计算合计总价
for (MZPriceModel *mzmodel in modelArray) {
allValue +=mzmodel.total_fee.floatValue;
}
//再次进行分类得到同一类相加价格相同数据显示一条,后的数据整理
SameArray = [self TwodistinguishArrayWithArray:sectionArray];
dispatch_async(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:self.view animated:YES];
[self setUI];
});
// 分类的数组
-(NSMutableArray *)distinguishArrayWithArray:(NSArray *)array
{ //初始化一个空数组 用于return
NSMutableArray * arrayAll = [[NSMutableArray alloc]init]; //找到所有要对比的数据
NSMutableArray * mutableArrayKey = [[NSMutableArray alloc]init]; for (int i=; i<array.count; i++)
{ MZPriceModel * model = [array objectAtIndex:i]; if (model.accounting_type == nil&&[model.accounting_type isEqualToString:@""]) {
model.accounting_type = @"";
}
[mutableArrayKey addObject:model.accounting_type];
} //过滤所有重复的数据
NSArray * indexArray = [NSArray arrayWithArray:mutableArrayKey];
NSSet * set = [NSSet setWithArray:indexArray];
indexArray = [set allObjects];
//排序
indexArray = [indexArray sortedArrayUsingSelector:@selector(compare:)]; for (int i=; i<indexArray.count; i++)
{
//把每个不重复的数据当做一类数据
NSMutableArray * muatbleArray = [[NSMutableArray alloc]init]; //把原始数据分别归类
for (int a=; a<array.count; a++)
{
MZPriceModel * model = [array objectAtIndex:a]; if ([model.accounting_type isEqualToString:[indexArray objectAtIndex:i]])
{
[muatbleArray addObject:model];
}
} //获取所有归类过的数据
[arrayAll addObject:muatbleArray];
}
return arrayAll;
}
//同类中整理数据
-(NSArray *)TwodistinguishArrayWithArray:(NSArray *)arrayOld
{
NSMutableArray * arrarAll = [[NSMutableArray alloc]init];
//初始化一个空数组 用于return
//把每个重复的数据当做一类数据 for( int k=;k<arrayOld.count;k++)
{
NSMutableArray * array2 =[NSMutableArray array]; NSMutableArray * array = [NSMutableArray array];
//同一类的
array =arrayOld[k]; //得到相同类目的数组
for (int i=; i<array.count-; i++)
{
// 把原始数据分别归类
for (int a=+i; a<array.count; a++)
{ MZPriceModel * modeli = [array objectAtIndex:i];
MZPriceModel * modela = [array objectAtIndex:a]; if (modeli.name==nil||[modeli.name isEqualToString:@""]) { }else{
if ([modela.name isEqualToString:modeli.name] && [modela.price isEqualToString:modeli.price])
{
// NSArray *contentList = @[model.name,model.quantity,model.price,[NSString stringWithFormat:@"%0.2f",model.total_fee.floatValue]]; NSString* quani = modeli.quantity;
NSString* quana = modela.quantity;
NSString *danjia = modela.price;
int zongliang =quana.intValue+quani.intValue; modeli.quantity =[NSString stringWithFormat:@"%d",zongliang];
modeli.total_fee =[NSString stringWithFormat:@"%0.1f",danjia.floatValue*zongliang]; [array removeObjectAtIndex:a];
MZPriceModel * kong =[[MZPriceModel alloc]init];
[array insertObject:kong atIndex:a]; } }
} } for (MZPriceModel * mo in array) { if (mo.name) {
[array2 addObject:mo];
} } [arrarAll addObject:array2]; }
return arrarAll;
}
iOS tableView 数据处理,数据分类相同数据整合、合并计算总数总价的更多相关文章
- IOS tableView的数据刷新
1.tableView的刷新 1> 数据刷新的总体步骤 * 修改模型数据 * 刷新表格(刷新界面) 2> 刷新表格(刷新界面)的方法 * 全局刷新(每一行都会重新刷新) - (void)r ...
- iOS:控制器间的数据传递
在iOS开发中遇到的控制器间的数据传递主要有两种情况:顺传递与逆传递.顺传递是指数据的传递方向和控制器的跳转方向相同(如图1):逆传递是指数据的传递方向和控制器的跳转方向相反(如图2).这里分别介绍这 ...
- 用IBM WebSphere DataStage进行数据整合: 第 1 部分
转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0602zhoudp/ 引言 传统的数据整合方式需要大量的手工 ...
- iOS中GET 和 POST 数据请求
iOS中GET 和 POST 网络数据请求 同步请求和异步请求的差别: 1.同步请求,有主线程完成网路请求任务,在数据没有请求之前,用户的所有的交互事件应用都无法处理,会造成一种卡顿现象,影响用户体验 ...
- iOS TableView多级列表
代码地址如下:http://www.demodashi.com/demo/15006.html 效果预览 ### 一.需求 TableView多级列表:分级展开或合并,逐级获取并展示其子级数据,可以设 ...
- 用IBM WebSphere DataStage进行数据整合: 第 1 部分 分类: H2_ORACLE 2013-08-23 11:20 688人阅读 评论(0) 收藏
转自:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0602zhoudp/ 引言 传统的数据整合方式需要大量的手工 ...
- iOS tableview的常用delegate和dataSource执行顺序
在这次项目中遇到了一个特别奇葩的问题:表视图创建的cell在7以上的系统能正常运行显示,在模拟器上就不能正常实现......为解决这个问题,纠结了好久...... 对在7系统上不显示的猜测: 用mas ...
- PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)
说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...
- iOS 直播-获取音频(视频)数据
iOS 直播-获取音频(视频)数据 // // ViewController.m // capture-test // // Created by caoxu on 16/6/3. // Copyri ...
随机推荐
- LINQ学习系列-----1.4 匿名对象
本篇内容接着上一篇继续讲述,本篇简单讲解匿名对象 一.匿名对象介绍 上代码: var result=new { ID=, Name="张三", Age= ...
- JavaScript的简单继承实现案例
<html><body><script> //实现JavaScript继承的步骤: //1:写父类 //2:写子类 //3:用Object.create()来实现继 ...
- sqoop的导入导出
1.知道某列的值的增量导入(mysql------>文件) bin/sqoop import \--connect jdbc:mysql://bigdatcdh01:3306/test \--u ...
- 使用sklearn进行数据挖掘-房价预测(2)—划分测试集
使用sklearn进行数据挖掘系列文章: 1.使用sklearn进行数据挖掘-房价预测(1) 2.使用sklearn进行数据挖掘-房价预测(2)-划分测试集 3.使用sklearn进行数据挖掘-房价预 ...
- Laravel框架使用的一些注意细节(一)
1.资源路由RESTful 当你不想编写太多的路由的时候,肯定会用到RESTful资源控制器.但当你使用资源控制器的时候,需要注意的是,你的资源路由的名字不能与public目录下的文件有重名,否则会导 ...
- 大数据学习系列之一 ----- Hadoop环境搭建(单机)
一.环境选择 1,服务器选择 阿里云服务器:入门型(按量付费) 操作系统:linux CentOS 6.8 Cpu:1核 内存:1G 硬盘:40G ip:39.108.77.250 2,配置选择 JD ...
- 实践作业1:测试管理工具实践 Day2
1.尝试配置TestLink所需环境 安装配置php+apache+mysql时遇到一系列稀奇古怪的错误. 2.百度之后发现有可行的替代工具:Vertrigoserv(VertrigoServ是一个W ...
- 反射---hasattr、getattr、setattr、delattr
class Foo: f = "类的静态变量" def __init__(self,name,age): self.name = name self.age = age def s ...
- google软件测试之道读后感(一)
这几天在抽空读一本新书,久负盛名的<google软件测试之道>.之前在网络上一点一点地看过它的英文版,很受触动,还做了很长的读书笔记,现在看到了中文版,才恍觉之前的好些理解存在不恰当的地方 ...
- lnmp1.3 配置pathinfo---thinkphp3.2 亲测有效
lnmp1.3环境下配置pathinfo模式试了很多方法,都以失败告终,博主被这个问题困扰了很久,终于解决了!现记录如下: 1.打开php.ini 通常该文件在 /usr/local/php/etc/ ...