您的位置:首页 > 移动开发 > IOS开发

iOS简单实用方法封装

2017-10-12 15:20 232 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: