ios自定义工具类

在开发中用到比较多的工具类,自己封装了一下,保持业务代码的干净整洁.

.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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值