iOS简单实用方法封装

1. Help.h内容

//
//  Help.h
//  TeaShop
//
//  Created by chen on 16/12/7.
//  Copyright © 2016年 Ali Karagoz. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Help : NSObject

/**
 NSURLConnection 同步网络请求

 @param urlStr 请求的url地址

 @return 请求返回的数据data(NSDictionary/NSArray)
 */
+(id)getJsonDataFromWeb:(NSString *)urlStr;


/**
 UIAlertView 提示信息

 @param message 提示的内容
 */
+(void)showAlertViewWithMessage:(NSString *)message;


/**
 求字符串的动态高度

 @param value    字符串
 @param width    字符串的宽度
 @param fontSize 字符串字体大小

 @return 字符串的高
 */
+(CGFloat)heightForString:(NSString *)value withWidth:(CGFloat)width withFont:(CGFloat)fontSize;


/**
 将原始字符串变成html字符串

 @param origin 原始字符串

 @return html字符串
 */
+(NSString *)getHtmlStringFromString:(NSString *)origin;

/**
 NSUserDefault 中获取键对应的值

 @param settingKey 键

 @return 键对应的值
 */
+(id)getDataFromUserDefaults:(NSString *)settingKey;

/**
 保存数据到 NSUserDefault

 @param key   数据的key
 @param value 数据
 */
+(void)saveDataToUserDefaults:(NSString *)key withValue:(id)value;


/**
 十六进制下的颜色转成UIColor

 @param stringToConvert 十六进制颜色(#2d2d37)

 @return UIColor
 */
+(UIColor *) hexStringToColor: (NSString *) stringToConvert;


/**
 将字典/数组格式的数据转成Json格式的字符串

 @param data 字典/数组格式的数据

 @return json格式字符串
 */
+ (NSString*)getJsonStringFromData:(id)data;

/**
 将Json格式字符串转成字典/数组格式的数据

 @param jsonString Json格式字符串

 @return 字典/数组格式的数据
 */
+ (id)getDataFromJsonString:(NSString *)jsonString;

@end


2. Help.m内容

//
//  Help.m
//  TeaShop
//
//  Created by chen on 16/12/7.
//  Copyright © 2016年 Ali Karagoz. All rights reserved.
//

#import "Help.h"

@implementation Help
+(id)getJsonDataFromWeb:(NSString *)urlStr
{
    NSURL *url = [NSURL URLWithString:urlStr];
    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15];
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    if (data != nil) {
        NSError *error;
        id jsonObj = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
        if ([jsonObj isKindOfClass:[NSDictionary class]] ||
            [jsonObj isKindOfClass:[NSArray class]]) {
            return jsonObj;
        }
        return nil;
    }else{
        return nil;
    }
}

+(void)showAlertViewWithMessage:(NSString *)message
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
                                                    message:message
                                                   delegate:nil
                                          cancelButtonTitle:nil
                                          otherButtonTitles:nil];
    [alert show];
    [alert performSelector:@selector(dismissWithClickedButtonIndex:animated:) withObject:nil afterDelay:1];
}


+(CGFloat)heightForString:(NSString *)value withWidth:(CGFloat)width withFont:(CGFloat)fontSize
{
    NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]};
    CGSize strSize = [value boundingRectWithSize:CGSizeMake(width, 0)
                                         options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
                                      attributes:dic
                                         context:nil].size;
    return strSize.height;
}

+(NSString *)getHtmlStringFromString:(NSString *)origin
{
    NSString *outputStr = (NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                              (CFStringRef)origin ,
                                                              NULL,
                                                              (CFStringRef)@"!*'@()[]:;&=+$,/?%#",
                                                              kCFStringEncodingUTF8));
    return outputStr;
}

+(id)getDataFromUserDefaults:(NSString *)settingKey
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:settingKey]) {
        return [defaults objectForKey:settingKey];
    }
    return nil;
}

+(void)saveDataToUserDefaults:(NSString *)settingKey withValue:(id)settingValue
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:settingValue forKey:settingKey];
    [defaults synchronize];
}

//16进制颜色(html颜色值)字符串转为UIColor
+(UIColor *) hexStringToColor: (NSString *) stringToConvert
{
    NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
    // String should be 6 or 8 charactersif ([cString length] < 6) return [UIColor blackColor];
    // strip 0X if it appearsif ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
    if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
    if ([cString length] != 6) return [UIColor blackColor];
    
    // Separate into r, g, b substrings
    NSRange range;
    range.location = 0;
    range.length = 2;
    NSString *rString = [cString substringWithRange:range];
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    range.location = 4;
    NSString *bString = [cString substringWithRange:range];
    // Scan values
    unsigned int r, g, b;
    
    [[NSScanner scannerWithString:rString] scanHexInt:&r];
    [[NSScanner scannerWithString:gString] scanHexInt:&g];
    [[NSScanner scannerWithString:bString] scanHexInt:&b];
    
    return [UIColor colorWithRed:((float) r / 255.0f)
                           green:((float) g / 255.0f)
                            blue:((float) b / 255.0f)
                           alpha:1.0f];
}
//字典转json格式字符串:
+ (NSString*)getJsonStringFromData:(id)data
{
    NSError *parseError = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data options:NSJSONWritingPrettyPrinted error:&parseError];
    
    return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}

//json格式字符串转字典:
+ (id)getDataFromJsonString:(NSString *)jsonString
{

    if (jsonString == nil) {
        return nil;
    }
    
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    id data = [NSJSONSerialization JSONObjectWithData:jsonData
                                                        options:NSJSONReadingMutableContainers
                                                          error:&err];
    if(err) {
        NSLog(@"json解析失败:%@",err);
        return nil;
    }
    
    return data;
}
@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值