在开发中用到比较多的工具类,自己封装了一下,保持业务代码的干净整洁.
.h
#import <Foundation/Foundation.h>
@interface WYHTools : NSObject
//将字典中的number类型转为string类型:服务器返回的数据往往含有number参数,用到的时候总要转换或者判断,不如在服务器传回的时候直接转换一下,方便以后使用
+ (NSDictionary *)numberToStringWithDictionary:(NSDictionary *)dictionary;
//根据UIlabel 的文字及其属性 以及标签宽度计算label的高度
+ (CGFloat)heightForLabelWithText:(NSString *)text Font:(UIFont *)font LineSpace:(CGFloat)lineSpace AndWidth:(CGFloat)width;
//根据文字及其属性 计算单行UIlabel的宽度
+ (CGFloat)widthForLabelWithText:(NSString *)text Font:(UIFont *)font andWidth:(CGFloat)width;
//NSArray/NSDictionary转为Json
+ (NSData *)toJSONData:(id)theData;
//Json转为NSArray/NSDictionary
+ (id)toArrayOrNSDictionary:(NSData *)jsonData;
//根据颜色和大小绘制一个image
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size;
//将图片保存在本地并返回其路径
+ (NSString *)saveImageInDocumentWithImage:(UIImage *)image andImageName:(NSString *)name;
//判断string是否为空
+ (BOOL)isBlankString:(NSString *)string;
//时间戳转日期格式 @param format "yyyy-MM-dd"...
+ (NSString *)toDateWithTimeStamp:(NSString *)timeStamp andDateFormat:(NSString *)format;
.m
#import "WYHTools.h"
@implementation WYHTools
+ (NSDictionary *)numberToStringWithDictionary:(NSDictionary *)dictionary{
NSMutableDictionary *mutDictionary=[NSMutableDictionary dictionaryWithDictionary:dictionary];
[mutDictionary enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[NSNumber class]]) {
NSString *strObj=[NSString stringWithFormat:@"%d",[obj integerValue]];
[mutDictionary setObject:strObj forKey:key];
}
}];
return [NSDictionary dictionaryWithDictionary:mutDictionary];
}
+ (CGFloat)heightForLabelWithText:(NSString *)text Font:(UIFont *)font LineSpace:(CGFloat)lineSpace AndWidth:(CGFloat)width{
NSMutableParagraphStyle *paragraphStyle=[[NSMutableParagraphStyle alloc]init];
[paragraphStyle setLineSpacing:lineSpace];
NSDictionary *attributesDic=[NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, paragraphStyle,NSParagraphStyleAttributeName, nil];
CGRect r=[text boundingRectWithSize:CGSizeMake(width, 0) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:attributesDic context:nil];
return r.size.height;
}
+ (CGFloat)widthForLabelWithText:(NSString *)text Font:(UIFont *)font andWidth:(CGFloat)width{
NSDictionary *attributesDic=[NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil];
CGRect r=[text boundingRectWithSize:CGSizeMake(width, 2000) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:attributesDic context:nil];
return r.size.width;
}
+ (NSData *)toJSONData:(id)theData{
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData options:NSJSONWritingPrettyPrinted error:&error];
if ([jsonData length] > 0 && error == nil){
return jsonData;
}else{
return nil;
}
}
+ (id)toArrayOrNSDictionary:(NSData *)jsonData{
NSError *error = nil;
id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error];
if (jsonObject != nil && error == nil){
return jsonObject;
}else{
return nil;
}
}
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size {
CGRect rect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
+ (NSString *)saveImageInDocumentWithImage:(UIImage *)image andImageName:(NSString *)name{
NSData *data=nil;
if (UIImagePNGRepresentation(image)) {
data=UIImagePNGRepresentation(image);
}
else{
data=UIImageJPEGRepresentation(image, 1.0);
}
NSString *path_sandox=NSHomeDirectory();
NSString *imagePath=[path_sandox stringByAppendingString:[NSString stringWithFormat:@"/Documents/%@",name]];
[data writeToFile:imagePath atomically:YES];
return imagePath;
}
+ (BOOL)isBlankString:(NSString *)string {
if (string == nil || string == NULL) {
return YES;
}
else if ([string isKindOfClass:[NSNull class]]) {
return YES;
}
else if ([string isEqualToString:@"(null)"]) {
return YES;
}
else if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {
return YES;
}
return NO;
}
+ (NSString *)toDateWithTimeStamp:(NSString *)timeStamp andDateFormat:(NSString *)format{
NSString *arg = timeStamp;
if (![timeStamp isKindOfClass:[NSString class]]) {
arg = [NSString stringWithFormat:@"%@", timeStamp];
}
NSTimeInterval time = [timeStamp doubleValue];
NSDate *date=[NSDate dateWithTimeIntervalSince1970:time];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:format];
NSString *timeStr=[dateFormatter stringFromDate:date];
return timeStr;
}
@end