一些常用基类的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"
是否是空对象
if ([NSObject isEmpty:object]) {
// object is empty
}
是否是空字符串
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
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];
通过安全方式设置一个object
[dictionary safeSetObject:@"value" forKey:@"key"];
通过安全方式移除一个object
[dictionary safeRemoveObjectForKey:@"key"];
转为JSON格式的NSData
这个方法不支持自定义的NSObject
NSData *jsonData = [array toData];
转为JSON格式的NSString
这个方法不支持自定义的NSObject
NSString *jsonString = [array toJSON];
通过安全方式返回一个数组中的对象
id object = [array safeObjectAtIndex:4];
通过安全方式增加一个对象到数组中
NSOjbect *object = [[NSObject alloc] init];
[array safeAddObject:object];
获取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)];
根据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];
忽略必须传入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];