文章来源:淘论文网   发布者: 毕业设计   浏览量: 23



还可以点击去查询以下关键词:
[排序]    [工具]    [字符]    [毕业]    [继承]    [NSObjectmodel]    [对象]    [排序工具: 可排序字符毕业串和继承自NSObjectmodel对象]   

项目介绍:

PS: 简单排序工具, 如有bug, 可留言, 或到
https://github.com/LQQZYY/LZSortTool提交, 最新的代码会上传到https://github.com/LQQZYY/LZSortTool, 可移步下载.如果您感觉不错,可以star一下, 谢谢!

介绍

LZSortTool是一个分组排序工具,对排序操作进行了简单的封装,只需将所需排序的内容放在数组传过去即可;
对外接口中,预留了两个方法,分别是对字符串内容进行排序,和对NSObject对象(一般是我们创建的数据模型model)进行排序

/** * @author LQQ, 16-08-20 14:08:26 * * 对一组字符串,按照首个字符的首字母进行分组排序 * * @param sourceArray 待分组排序的字符串集合集合 * @param sortType 排序结果的类型 * * @return 返回一个排序分组后的数组 */ + (nullable NSArray*)sortStrings:(nonnull NSArray<NSString *>*)sourceArray withSortType:(LZSortResultType)sortType; /** * @author LQQ, 16-08-20 14:08:19 * * 对一组NSObject的子类对象(一般是model模型)按某个属性进行排序 * * @param sources 含有model的数组 * @param key 排序依据,必须是model的一个字符串属性,不能为nil * @param sortType 排序结果的类型 * * @return 返回排序结果(含有model) */ + (nullable NSArray *)sortObjcs:(nonnull NSArray <NSObject *>*)sources byKey:(nonnull NSString *)key withSortType:(LZSortResultType)sortType;

这里的参数都有说明,直接看注释即可;
另外LZSortResultType是设置返回的结果类型,这里我给了两种:

一种是不含排序后的索引的
排序的结果数组中含有的元素为数组,内含数组中的内容是分组后的元素

一种是含有排序后的索引的
排序的结果数组中含有的元素为字典,字典包含两个字段,分别对应索引和该索引的分组(数组)

当返回含有索引时,由于返回的结果数组中是字典,为便于取值,这里我将这两个字段的key值进行了预定义:

/** 返回的排序后的结果字典中,序号对应的key */ static NSString const * _Nonnull LZSortToolKey = @'LZSortToolKey'; /** 返回的排序后的结果字典中,value对应的key*/ static NSString const * _Nonnull LZSortToolValueKey = @'LZSortToolValueKey';

在取值的时候,直接使用这个预定义的key即可;

NSArray *arr = [dic objectForKey:LZSortToolValueKey]集成手动添加

手动添加非常简单,只需将文件夹LZSortClass拖到自己工程, 然后在需要的地方引入头文件:

cocoapods添加

如果使用cocoapods管理, 可以在Podfile文件添加以下代码即可:

pod 'LZSortTool'使用

引入头文件

#import 'LZSortTool.h'对字符串进行排序- (NSMutableArray *)nameArray { if (!_nameArray) { _nameArray = [[NSMutableArray alloc]initWithObjects:@'鲁迅',@'###',@'刘一',@'赵四',@'钱',@'李三',@'孙五',@'王二',@'黄蓉',@'孙悟空',@'哪吒',@'李天王',@'范冰冰',@'赵丽颖',@'霍建华',@'黄晓明',@'成龙',@'李连杰',@'李小龙',@'曾小贤',@'LiShan', nil]; } return _nameArray; } NSArray *arr = [LZSortTool sortStrings:self.nameArray withSortType:LZSortResultTypeSingleValue]; NSArray *arr1 = [LZSortTool sortStrings:self.nameArray withSortType:LZSortResultTypeDoubleValues];

这样即可获取到分组排序的结果;

对NSObject进行排序

首先,定义一个模型:

#import <Foundation/Foundation.h> @interface People : NSObject @property (nonatomic,copy)NSString *name; @property (nonatomic,assign)NSInteger age; @end

创建数据源:

NSMutableArray *pArray = [NSMutableArray arrayWithCapacity:0]; for (NSString *str in self.nameArray) { People *p = [[People alloc]init]; p.name = str; p.age = arc4random()%90 + 10; [pArray addObject:p]; }

排序:

NSArray *pArr = [LZSortTool sortObjcs:pArray byKey:@'name' withSortType:LZSortResultTypeDoubleValues];示例图

字符串排序,直接查看控制台输出吧,这里只给出模型排序的截图:

论文开题报告


这里还有:


还可以点击去查询:
[排序]    [工具]    [字符]    [毕业]    [继承]    [NSObjectmodel]    [对象]    [排序工具: 可排序字符毕业串和继承自NSObjectmodel对象]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/7792.docx
  • 上一篇:国际化毕业设计使用
  • 下一篇:iOS 上 FPS毕业设计 实时显示器