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
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
相关文章推荐
- iOS 手写签名的简单实用封装
- iOS 手写签名的简单实用封装
- iOS UIButton的简单实用方法
- C#基础视频中的实用方法封装统计
- IOS储存图片的简单方法
- ios 一些简单的 方法
- UIView封装动画--iOS利用系统提供方法来做关键帧动画
- ios(iphone/ipad)一个简单的用代码判断当前设备的方法
- iOS方法封装
- iOS 获得屏幕正在显示的Controller(自定义的控制器)的实用方法
- iOS中常用简单封装
- 简单封装okhttp的post方法
- JavaScript对象封装的简单实现方法(3种方法)
- iOS本地数据搜索 - UISearchController的简单实用
- IOS设置背景色设置最简单方法
- iOS property两种实现方法区别的简单介绍
- 防止浏览器将用户名及密码填充在错误位置的简单实用方法
- IOS 简单的动画自定义方法(旋转、移动、闪烁等)
- iOS开发之-收集的不常用却实用的小方法和技巧
- 【iOS开发】深入MVC---UITableView的数据源方法封装