这是我在项目中慢慢积累的方法集合,有些是自己写的,有些是觉得网上的写的挺好的就给自己搬过来了。
github地址链接:https://github.com/KingXcode/HTTools有些类对Masonry有依赖,可以根据需要添加Masonry,如果不需要请删除相关的类。第一版示例更新:这个示例文件中简单写了几个分类的用法,当然其它的分类功能更多。主要写在ViewController.h中。
这个用来数组排序的分类,项目中进场会遇到模型数组,然后需要按照模型元素中的某一个属性进行排序,该分类中提供了这个排序方法,主要还提供了去重的方法具体可以参考源码。
#pragma -mark- NSArray+HTTools.h
-(void)testArraySortFunction_1
{
NSArray *test = @[@2,@3,@5,@23,@2,@12,@91,@10,@54,@6];
NSArray *newTest = [test ht_SortModelArrayWithInfo:@[@{@"self":@(YES)}]];
NSLog(@"详情请参考NSArray+HTTools.h和HTTools+Array这两个分类");
NSLog(@"--数组排序---%@",newTest);
NSLog(@"--数组反序---%@",[newTest ht_reverse]);
NSLog(@"--数组去重---%@",[newTest ht_removeRepeatRows]);
NSLog(@"模型数组根据模型属性去重,请参考NSArray+HTTools.h中的说明\n\n\n");
}
这是关于时间的分类 里面有关于时间获取的更详细的方法
#pragma -mark- NSDate+HTExtension-(void)testDateExtension_1
{
NSDate *date = [NSDate date];
NSLog(@"详情请参考NSDate+HTExtension和HTTools+Date这两个分类");
NSLog(@"--时间获取---%ld年",[date ht_year]);
NSLog(@"--时间获取---%ld月",[date ht_month]);
NSLog(@"--时间获取---%ld日",[date ht_day]);
NSLog(@"--时间获取---%ld时",[date ht_hour]);
NSLog(@"--时间获取---%ld分",[date ht_minute]);
NSLog(@"--时间获取---%ld秒",[date ht_second]);
NSLog(@"--获取一年的天数---%ld",[date ht_daysInYear]);
NSLog(@"--获取当前月的天数---%ld",[date ht_daysInMonth]);
NSLog(@"--是否是闰年---%@",@([date ht_isLeapYear]));
NSLog(@"--这个时间是今年的第%ld周",[date ht_weekOfYear]);
NSLog(@"--时间格式化---%@",[date ht_formatYMD]);
NSLog(@"在HTTools+Date.h中有这个方法我在项目中的使用频率更高ht_DateWithLongTime:dateFormat:");
}
关于字符串的方法,分词进制转换尺寸计算都在里面
#pragma -mark- NSString+HTTools.h
-(void)testStringTools
{
NSString *txt = @"这个方法虽然已经过时,但是对它的分析有助于后面知识的理解。它一共有6个参数,前两个表示从哪个VC开始,跳转到哪个VC,中间两个参数表示动画的时间和选项。最后两个参数表示动画的具体实现细节和回调闭包。";
NSString *number = @"3278.10300";
NSLog(@"详情请参考NSString+HTTools.h和HTTools+String这两个分类");
NSLog(@"移除最后无效的0--%@--保留两位小数",[number ht_removeFloatAllZeroKeepTwoDecimalPlaces]);
NSLog(@"移除最后无效的0--%@",[number ht_removeFloatAllZero]);
NSLog(@"分词 带标点\n%@",[txt ht_stringTokenizer]);
NSLog(@"分词 不带标点\n%@",[txt ht_notDotStringTokenizer]);
NSLog(@"文本尺寸计算%@",[NSValue valueWithCGSize:[txt ht_sizeOfFont:[UIFont systemFontOfSize:20] limitWidth:200]]);
NSLog(@"十进制转二进制%@",[@"87" ht_decimalTOBinaryWithBackLength:10]);
NSLog(@"十进制转十六进制%@",[@"87" ht_ToHex]);
NSLog(@"十六进制转二进制%@",[[@"87" ht_ToHex]ht_getBinaryByhex]);
NSLog(@"请参考对应头文件\n\n\n");
}
待续...
网友评论