Skip to content

linconz/YLDevloperTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YLDevloperTools

一些常用基类的category,整合了一下。

目录

使用说明

// 在你的pch文件或者需要用到的地方引入对应基类的category即可
#import "NSObject+Tools.h"
#import "NSString+Tools.h"
#import "NSDictionary +Tools.h"
#import "UIView+Tools.h"
#import "UIColor+Tools.h"
#import "UIAlertController+Tools.h"

Foundation

NSObject

是否是空对象

if ([NSObject isEmpty:object]) {
	// object is empty
}

NSString

是否是空字符串

if ([NSString isBlankString:string]) {
	// string is blank
}

返回一个安全字符串

NSString *safeString = [NSString safeString:string];

是否是整型数字

if ([NSString isPureInt:string]) {
	// string is pure int
}

是否是浮点数字

if ([NSString isPureFloat:string]) {
	// string is pure float
}

是否是数字

if ([NSString isNumber:string]) {
	// string is pure float
}

URLEncode

NSString *url = [NSString encodeString:string];

URLDecode

NSString *url = [NSString decodeString:string];

删除收尾空格

NSString *newString = [string trim];

删除左侧空格

NSString *newString = [string ltrim];

删除右侧空格

NSString *newString = [string rtrim];

转换为NSDate

// 必须是 yyyy-MM-dd HH:ii:mm 格式的字符串
NSDate *newString = [string toDate];

转换为NSData

// 转换为UTF8编码的NSData
NSData *newData = [string toData];

转换为NSDictionary

// 把JSON格式的NSString转换为NSDictionary
// 如果不是json格式,返回一个空的字典
NSDictionary *dictionary = [string toDictionary];

进行MD5加密

// 加密为32位小写MD5值
NSString *md5 = [string toMD5];

返回字符串需要显示的尺寸

// 根据提供的最大尺寸和字体大小返回字符串展示后需要的尺寸
CGSize size = [string boundingRectWithSize:CGSizeMake(100, 100) withFont:[UIFont systemFontOfSize:13]];

NSDictionary

检查是否是合法的NSDictionary

BOOL result = NSDictionary isLegalDictionary:dictionary];

检查是否是空的NSDictionary

BOOL result = [NSDictionary isEmptyDictionary:dictionary];

通过安全方式获得一个对象

NSObject *object = [dictionary safeObjectForKey:@"key"];

通过安全方式获得一个NSString

NSString *string = [dictionary safeValueForKey:@"key"];

转为JSON格式的NSData

这个方法不支持自定义的NSObject

NSData *jsonData = [dictionary toData];

转为JSON格式的NSString

这个方法不支持自定义的NSObject

NSString *jsonString = [dictionary toJSON];

NSMutableDictionary

通过安全方式设置一个object

[dictionary safeSetObject:@"value" forKey:@"key"];

通过安全方式移除一个object

[dictionary safeRemoveObjectForKey:@"key"];

NSArray

转为JSON格式的NSData

这个方法不支持自定义的NSObject

NSData *jsonData = [array toData];

转为JSON格式的NSString

这个方法不支持自定义的NSObject

NSString *jsonString = [array toJSON];

通过安全方式返回一个数组中的对象

id object = [array safeObjectAtIndex:4];

NSMutableArray

通过安全方式增加一个对象到数组中

NSOjbect *object = [[NSObject alloc] init];
[array safeAddObject:object];

UIKit

UIView

获取view的x

// 等于使用 view.frame.origin.x
float x = view.x;
// 修改 view.x
view.x = 16;

获取view的y

// 等于使用 view.frame.origin.y
float y = view.y;
// 修改 view.y
view.y = 16;

获取view的width

// 等于使用 view.frame.size.width
float width = view.width;
// 修改 view.width
view.width = 100;

获取view的height

// 等于使用 view.frame.size.height
float height = view.height
// 修改 view.height;
view.height = 100;

获取view的right 相对于父view(view.superview)的右边距

// 等于使用 view.frame.origin.x + view.frame.size.width
float right = view.right;
// 修改 view.right
view.right = 100;

获取view的bottom 相对于父view(view.superview)的底边距

// 等于使用 view.frame.origin.y + view.frame.size.height
float bottom = view.bottom;
// 修改 view.bottom
view.bottom = 100;

获取view的size

// 等于使用 view.frame.size
CGSize size = view.size;
// 修改 view.size
view.size = CGSize(100, 100);

获取view的origin

// 等于使用 view.frame.origin
CGPoint origin = view.origin;
// 修改 view.origin
view.origin = CGPoint(10, 10);

UIView转为UIImage

UIImage *image = [view toImage];

根据传入的rect裁剪UIView后转为UIImage

UIImage *image = [view toImageWithRect:CGRectMake(10, 10, 50, 50)];

UIColor

根据16进制字符串转为UIColor

// 支持 #AARRGGBB 或者 #RRGGBB 格式
NSString *hexString = @"#64191970";
UIColor *hexStringColor = [UIColor colorWithHexString:hexString];

根据16进制字符串转为UIColor,数据错误时提供默认颜色

// 支持 #AARRGGBB 或者 #RRGGBB 格式
NSString *hexString = @"#64191970";
UIColor *hexStringColor = [UIColor colorWithHexString:hexString withDefaultColor:[UIColor redColor]];

根据16进制数字转为UIColor,提供颜色透明度

// 0xRRGGBB
UInt32 hexUint = 0x191970;
UIColor *hexUinColor = [UIColor colorWithHexRRGGBB:hexUint withAlpha:1.0f];

根据16进制(含alpha)转为UIColor

// 0xAARRGGBB
UInt32 hexUint = 0x64191970;
UIColor *hexUinColor = [UIColor colorWithHexAARRGGBB:hexUint];

UIAlertController

忽略必须传入UIViewController的限制,直接show在UIWindow上面

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"alert title" message:@"content" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction _Nonnull action) {}];
[alert addAction:cancel];
[alert show];

About

一些常用基类的category,整合了一下。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published