继《NSUserDefaults轻量级永久存储数据使用介绍》相关工具,欢迎补充修正

//

//  NSString+ADD.h

//

//  Copyright (c) 2015伊卡洛斯. All rights reserved.

//


#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

#define KS(String) ([NSString stringWithFormat:@"%@",String])

#define KCOLOR(color) ([NSString colorWithHexString:color])


@interface NSString (ADD)


/**

 *  字符串长度超过8,只取前8

 */

+ (NSString *)getEightStringWith:(NSString *)string;

/**

 *  设置段落样式

 *

 *  @param lineSpacing 行高

 *  @param textcolor   字体颜色

 *  @param font        字体

 *

 *  @return 富文本

 */

- (NSAttributedString *)stringWithParagraphlineSpeace:(CGFloat)lineSpacing

                                            textColor:(UIColor *)textcolor

                                             textFont:(UIFont *)font;

/**

 *  计算富文本字体高度

 *

 *  @param lineSpeace 行高

 *  @param font       字体

 *  @param width      字体所占宽度

 *

 *  @return 富文本高度

 */

- (CGFloat)getSpaceLabelHeightwithSpeace:(CGFloat)lineSpeace withFont:(UIFont*)font withWidth:(CGFloat)width;

/**

 *  设置在一个文本中所有特殊字符的特殊颜色

 *  @pragma  allStr      所有字符串

 *  @pragma  specifiStr  特殊字符

 *  @pragma  color       默认特殊字符颜色   红色

 *  @pragma  font        默认字体           systemFont 17.号字

 **/

+ (NSMutableAttributedString *)setAllText:(NSString *)allStr andSpcifiStr:(NSString *)specifiStr;

+ (NSMutableAttributedString *)setAllText:(NSString *)allStr andSpcifiStr:(NSString *)specifiStr withColor:(UIColor *)color specifiStrFont:(UIFont *)font;

/**

 *  16位颜色色值处理

 */

+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;

+ (UIColor *)colorWithHexString:(NSString *)color;

/**

 *  通过给定的尺寸计算文本的高度和宽度

 *

 *  @param string 文本内容

 *  @param font   字体大小

 *  @param size   给定尺寸

 */

- (CGSize)stringBodfont:(CGFloat)font size:(CGSize)size;

- (CGSize)stringfont:(CGFloat)font size:(CGSize)size;

+ (CGSize)stringSize:(NSString *)string font:(CGFloat)font size:(CGSize)size;

/**

 *  获取当前日期,2015-9-10周四

 */

+ (NSString *)getTimeWithDateAddWeek:(NSDate *)date;

/**

 *  获取当前日期,2015-09-05

 */

+ (NSString *)getTimeWithDate:(NSDate *)date;

/**

 *  获取日期,20155

 */

+ (NSString *)getChinaTimeWithDate:(NSDate *)date;

/**

 *  获取日期,201551

 */

+ (NSString *)getChinaTimeDetailWithDate:(NSDate *)date;

/**

 *  获取日期,2015-5

 */

+ (NSString *)getTimeDate:(NSDate *)date;

/**

 *  获取日期,05-01

 */

+ (NSString *)getCustomTimeWithDate:(NSDate *)date;

/**

 *  根据一个字符串日期转换成日期类formatterStr (yyyy-MM-dd HH:mm:ss)

 */

+ (NSString *)getDateWithDate:(NSDate *)date andType:(NSString *)formatterStr;


//---------------------------

/**将简单数据保存到偏好设置*/

+ (void)saveData:(id)objc withKey:(NSString *)key;


/**根据对应的key取出保存的数据*/

+ (instancetype)getDataWithKey:(NSString *)key;


/**将一组数据保存到偏好设置*/

+ (void)saveArrayData:(id)objc withKey:(NSString *)key;


/**根据对应的key取出保存的一组数据*/

+ (NSArray *)getArrayDataWithKey:(NSString *)key;


/**将字典数据保存到偏好设置*/

+ (void)saveDictData:(id)objc withKey:(NSString *)key;


/**根据对应的key取出保存的字典数据*/

+ (NSDictionary *)getDictDataWithKey:(NSString *)key;


/**根据文件名保存一个复杂数据*/

+ (void)saveOneComplexData:(id)objc withFileName:(NSString *)name;


/**根据文件名取出一个复杂数据*/

+ (instancetype)getOneComplexDataWithFileName:(NSString *)name;


/**根据文件名保存一组复杂数据*/

+ (void)saveArrayComplexData:(id)objc withFileName:(NSString *)name;


/**根据文件名从一组中删除一条复杂数据*/

+ (void)deleteArrayComplexData:(id)objc withFileName:(NSString *)name;


/**根据文件名取出一组复杂数据*/

+ (NSArray *)getArrayComplexDataWithFileName:(NSString *)name;


/**根据文件名保存字典复杂数据*/

+ (void)saveDictionaryComplexData:(id)objc withFileName:(NSString *)name;


/**根据文件名取出字典复杂数据*/

+ (NSDictionary *)getDictionaryComplexDataWithFileName:(NSString *)name;


/**根据文件名获取文件路径*/

+ (NSString *)getFilePathWithName:(NSString *)name;


/**根据文件名清除保存的数据*/

+ (void)clearDataWithFileName:(NSString *)name;

//---------------------------可变字符串带颜色


+ (NSMutableAttributedString *)changeString:(NSString *)str byColor:(UIColor *)color range:(NSRange )range;


+ (NSMutableAttributedString *)changeString:(NSString *)str byFont:(UIFont *)font range:(NSRange )range;

/*============================================================================*/

//获取有效小数

+ (NSString*)getTheCorrectNum:(NSString*)tempString;

/**

 *  MD5加密

 */

- (NSString *)stringFromMD5;

/*============================================================================*/

/*!

 

 * @brief 把格式化的JSON格式的字符串转换成字典

 

 * @param jsonString JSON格式的字符串

 

 * @return 返回字典

 

 */


+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString;

    //词典转换为字符串


+ (NSString*)dictionaryToJson:(NSDictionary *)dic;


@end





=============================================================分割线==========================================================

//

//  NSString+ADD.h

//

//  Copyright (c) 2015 伊卡洛斯. All rights reserved.

//



#import "NSString+ADD.h"


#import <CommonCrypto/CommonDigest.h>


#if __has_feature(objc_arc)

#define SAFE_AUTORELEASE(a) (a)

#else

#define SAFE_AUTORELEASE(a) [(a) autorelease]

#endif


@class NSArray,NSMutableArray,NSDictionary,NSMutableDictionary;

@implementation NSString (ADD)


+ (NSString *)getEightStringWith:(NSString *)string {

    NSString *text = string;

    if (string.length >8) {

        text = [string substringToIndex:8];

    }

    return text;

}

/**

 *  设置段落样式

 *

 *  @param lineSpacing 行高

 *  @param textcolor   字体颜色

 *  @param font        字体

 *

 *  @return 富文本

 */

- (NSAttributedString *)stringWithParagraphlineSpeace:(CGFloat)lineSpacing

                                            textColor:(UIColor *)textcolor

                                             textFont:(UIFont *)font {

        // 设置段落

    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStylealloc] init];

    paragraphStyle.lineSpacing = lineSpacing;

        // NSKernAttributeName字体间距

    NSDictionary *attributes =@{ NSParagraphStyleAttributeName:paragraphStyle};

    NSMutableAttributedString * attriStr = [[NSMutableAttributedStringalloc] initWithString:selfattributes:attributes];

        // 创建文字属性

    NSDictionary * attriBute =@{NSForegroundColorAttributeName:textcolor,NSFontAttributeName:font};

    [attriStr addAttributes:attriButerange:NSMakeRange(0,self.length)];

    return attriStr;

}

/**

 *  计算富文本字体高度

 *

 *  @param lineSpeace 行高

 *  @param font       字体

 *  @param width      字体所占宽度

 *

 *  @return 富文本高度

 */

- (CGFloat)getSpaceLabelHeightwithSpeace:(CGFloat)lineSpeace withFont:(UIFont*)font withWidth:(CGFloat)width {

    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStylealloc] init];

        //    paraStyle.lineBreakMode = NSLineBreakByCharWrapping;

    /** 行高 */

    paraStyle.lineSpacing = lineSpeace;

        // NSKernAttributeName字体间距

    NSDictionary *dic =@{NSFontAttributeName:font,NSParagraphStyleAttributeName:paraStyle};

    CGSize size = [selfboundingRectWithSize:CGSizeMake(width,MAXFLOAT)options:NSStringDrawingUsesLineFragmentOriginattributes:dic context:nil].size;

    return size.height;

}


#pragma mark -- 设置在一个文本中所有特殊字符的特殊颜色


+ (NSMutableAttributedString *)setAllText:(NSString *)allStr andSpcifiStr:(NSString *)specifiStr withColor:(UIColor *)color specifiStrFont:(UIFont *)font {

    

    NSMutableAttributedString *mutableAttributedStr = [[NSMutableAttributedStringalloc] initWithString:allStr];

    if (color ==nil) {

        color = [UIColorredColor];

    }

    if (font ==nil) {

        font = [UIFontsystemFontOfSize:17.];

    }

        //    NSArray *array = [allStr componentsSeparatedByString:specifiStr];//array.cout-1是所有字符特殊字符出现的次数

    NSRange searchRange =NSMakeRange(0, [allStrlength]);

    NSRange range;

        //拿到所有的相同字符的range

    while ((range = [allStrrangeOfString:specifiStroptions:0range:searchRange]).location !=NSNotFound) {

            //改变多次搜索时searchRange的位置

        searchRange = NSMakeRange(NSMaxRange(range), [allStrlength] - NSMaxRange(range));

            //设置富文本

        [mutableAttributedStr addAttribute:NSForegroundColorAttributeNamevalue:color range:range];

        [mutableAttributedStr addAttribute:NSFontAttributeNamevalue:font range:range];

    }

    return mutableAttributedStr;

}


+ (NSMutableAttributedString *)setAllText:(NSString *)allStr andSpcifiStr:(NSString *)specifiStr {

    return [selfsetAllText:allStr andSpcifiStr:specifiStr withColor:nilspecifiStrFont:nil];

}


- (NSString *)stringDict:(NSDictionary *)dict {

    NSMutableString *string =self.mutableCopy;

    for (NSString *keyin dict) {

        [string appendString:[NSStringstringWithFormat:@"&%@==%@",key,dict[key]]];

    }

    return string;

}



- (NSString *)stringFromMD5 {

    

    if(self ==nil || [selflength] == 0)

        returnnil;

    

    constchar *value = [selfUTF8String];

    

    unsignedchar outputBuffer[CC_MD5_DIGEST_LENGTH];

    CC_MD5(value, (int)strlen(value), outputBuffer);

    

    NSMutableString *outputString = [[NSMutableStringalloc] initWithCapacity:CC_MD5_DIGEST_LENGTH *2];

    for(NSInteger count =0; count < CC_MD5_DIGEST_LENGTH; count++){

        [outputString appendFormat:@"%02x",outputBuffer[count]];

    }

    returnSAFE_AUTORELEASE(outputString);

}


+ (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha {

        //删除字符串中的空格

    NSString *cString = [[colorstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]]uppercaseString];

        // String should be 6 or 8 characters

    if ([cStringlength] < 6) {

        return [UIColorclearColor];

    }

        // strip 0X if it appears

        //如果是0x开头的,那么截取字符串,字符串从索引为2的位置开始,一直到末尾

    if ([cStringhasPrefix:@"0X"]) {

        cString = [cString substringFromIndex:2];

    }

        //如果是#开头的,那么截取字符串,字符串从索引为1的位置开始,一直到末尾

    if ([cStringhasPrefix:@"#"]) {

        cString = [cString substringFromIndex:1];

    }

    if ([cStringlength] != 6) {

        return [UIColorclearColor];

    }

    

        // Separate into r, g, b substrings

    NSRange range;

    range.location =0;

    range.length =2;

        //r

    NSString *rString = [cStringsubstringWithRange:range];

        //g

    range.location =2;

    NSString *gString = [cStringsubstringWithRange:range];

        //b

    range.location =4;

    NSString *bString = [cStringsubstringWithRange:range];

    

        // Scan values

    unsignedint r, g, b;

    [[NSScannerscannerWithString:rString]scanHexInt:&r];

    [[NSScannerscannerWithString:gString]scanHexInt:&g];

    [[NSScannerscannerWithString:bString]scanHexInt:&b];

    return [UIColorcolorWithRed:((float)r /255.0f) green:((float)g /255.0f) blue:((float)b /255.0f) alpha:alpha];

}


    //默认alpha值为1

+ (UIColor *)colorWithHexString:(NSString *)color {

    return [selfcolorWithHexString:coloralpha:1.0f];

}


+ (NSMutableAttributedString *)changeString:(NSString *)str byColor:(UIColor *)color range:(NSRange )range {

    

    NSMutableAttributedString *changeStr = [[NSMutableAttributedStringalloc]initWithString:str];

        //设置:在range之间个单位长度内的内容显示成color

    [changeStr addAttribute:NSForegroundColorAttributeNamevalue:color range:range];

    

    return changeStr;

}

+ (NSMutableAttributedString *)changeString:(NSString *)str byFont:(UIFont *)font range:(NSRange )range {

    

    NSMutableAttributedString *changeStr = [[NSMutableAttributedStringalloc]initWithString:str];

        //设置:在range之间个单位长度内的内容显示成color

    [changeStr addAttribute:NSFontAttributeNamevalue:font range:range];

    

    return changeStr;

}

- (CGSize)stringBodfont:(CGFloat)font size:(CGSize)size {

    CGRect bounds = [selfboundingRectWithSize:sizeoptions:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontboldSystemFontOfSize:font]}context:nil];

    return bounds.size;

}

- (CGSize)stringfont:(CGFloat)font size:(CGSize)size {

    CGRect bounds = [selfboundingRectWithSize:sizeoptions:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:font]}context:nil];

    return bounds.size;

}

+ (CGSize)stringSize:(NSString *)string font:(CGFloat)font size:(CGSize)size {

    CGRect bounds = [stringboundingRectWithSize:sizeoptions:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:font]}context:nil];

    

    return bounds.size;

}

+ (NSString *)getTimeWithDateAddWeek:(NSDate *)date {

    NSArray *weekArr =@[@"周日",@"周一",@"周二",@"周三",@"周四",@"周五",@"周六"];

    

    NSDateComponents *comps = [NSStringdateComponentsWithDate:date];

    NSString *week = weekArr[comps.weekday -1];

    

    return [NSStringstringWithFormat:@"%ld-%02ld-%02ld %@",comps.year,comps.month,comps.day,week];

}

+ (NSString *)getTimeWithDate:(NSDate *)date {

    NSDateComponents *comps = [NSStringdateComponentsWithDate:date];

    

    return [NSStringstringWithFormat:@"%ld-%02ld-%02ld",comps.year,comps.month,comps.day];

}

+ (NSDateComponents *)dateComponentsWithDate:(NSDate *)date {

    NSCalendar *calendar = [[NSCalendaralloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

    /**

     *  枚举值按需更改

     */

    NSInteger unitFlags =NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday;

    

    NSDateComponents *comps =[calendarcomponents:unitFlags fromDate:date];

    

    return comps;

}

+ (NSString *)getTimeDate:(NSDate *)date {

    NSDateComponents *comps = [NSStringdateComponentsWithDate:date];

    

    return [NSStringstringWithFormat:@"%ld-%ld",comps.year,comps.month];

}

+ (NSString *)getChinaTimeWithDate:(NSDate *)date {

    NSDateComponents *comps = [NSStringdateComponentsWithDate:date];

    

    return [NSStringstringWithFormat:@"%ld%ld",comps.year,comps.month];

}

+ (NSString *)getChinaTimeDetailWithDate:(NSDate *)date {

    NSDateComponents *comps = [NSStringdateComponentsWithDate:date];

    

    return [NSStringstringWithFormat:@"%ld%ld%ld",comps.year,comps.month,comps.day];

}

+ (NSString *)getCustomTimeWithDate:(NSDate *)date {

    NSDateComponents *comps = [NSStringdateComponentsWithDate:date];

    return [NSStringstringWithFormat:@"%02ld.%02ld",comps.month,comps.day];

}

+ (NSString *)getDateWithDate:(NSDate *)date andType:(NSString *)formatterStr{

    NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];

        //设定时间格式,这里可以设置成自己需要的格式

    [dateFormatter setDateFormat:formatterStr];

        //[NSDate date]可以获取系统当前时间

    NSString *currentDateStr = [dateFormatterstringFromDate:date];

    

    return currentDateStr;

}

    //将单一数据保存到偏好设置

+ (void)saveData:(id)objc withKey:(NSString *)key {

    NSUserDefaults *userDefault = [NSUserDefaultsstandardUserDefaults];

    [userDefault setObject:objcforKey:key];

    [userDefault synchronize];

}

    //根据对应的key取出保存的单一数据

+ (instancetype)getDataWithKey:(NSString *)key {

    NSUserDefaults *userDefault = [NSUserDefaultsstandardUserDefaults];

    id objc = [userDefaultobjectForKey:key];

    return objc;

}

    //将一组数据保存到偏好设置

+ (void)saveArrayData:(id)objc withKey:(NSString *)key {

    NSUserDefaults *userDefault = [NSUserDefaultsstandardUserDefaults];

    [userDefault setObject:objcforKey:key];

    [userDefault synchronize];

}

    //根据对应的key取出保存的一组数据

+ (NSArray *)getArrayDataWithKey:(NSString *)key {

    NSUserDefaults *userDefault = [NSUserDefaultsstandardUserDefaults];

    NSArray *objcArr = [userDefaultobjectForKey:key];

    return objcArr;

}

    //将字典数据保存到偏好设置

+ (void)saveDictData:(id)objc withKey:(NSString *)key {

    NSUserDefaults *userDefault = [NSUserDefaultsstandardUserDefaults];

    [userDefault setObject:objcforKey:key];

    [userDefault synchronize];

}

    //根据对应的key取出保存的字典数据

+ (NSDictionary *)getDictDataWithKey:(NSString *)key {

    NSUserDefaults *userDefault = [NSUserDefaultsstandardUserDefaults];

    NSDictionary *objcArr = [userDefaultobjectForKey:key];

    return objcArr;

}

    //根据文件名保存一个复杂数据

+ (void)saveOneComplexData:(id)objc withFileName:(NSString *)name {

    NSString *path = [selfgetFilePathWithName:name];

    NSData *data = [selfdataWithObjc:objc];

    [data writeToFile:pathatomically:YES];

}

    //根据文件名取出一个复杂数据

+ (instancetype)getOneComplexDataWithFileName:(NSString *)name {

    NSString *path = [selfgetFilePathWithName:name];

    NSData *data = [NSDatadataWithContentsOfFile:path];

    id objc = [selfgetObjcWithData:data];

    return objc;

}

    //根据文件名保存一组复杂数据

+ (void)saveArrayComplexData:(id)objc withFileName:(NSString *)name {

    NSString *path = [selfgetFilePathWithName:name];

    NSArray *dataArr = [selfgetArrayComplexDataWithFileName:name];

    NSMutableArray *mutableArr = [NSMutableArrayarrayWithArray:dataArr];

    [mutableArr insertObject:objcatIndex:0];

    [NSKeyedArchiverarchiveRootObject:mutableArrtoFile:path];

}

    //根据文件名删除一条复杂数据

+ (void)deleteArrayComplexData:(id)objc withFileName:(NSString *)name {

    NSString *path = [selfgetFilePathWithName:name];

    NSArray *dataArr = [selfgetArrayComplexDataWithFileName:name];

    NSMutableArray *mutableArr = [NSMutableArrayarray];

    for (id objc_1in dataArr) {

        if (![[objctitle] isEqualToString:[objc_1title]]) {

            [mutableArr addObject:objc_1];

        }

    }

    [NSKeyedArchiverarchiveRootObject:mutableArrtoFile:path];

}

    //根据文件名取出一组复杂数据

+ (NSArray *)getArrayComplexDataWithFileName:(NSString *)name {

    NSString *path = [selfgetFilePathWithName:name];

    NSArray *array = [NSKeyedUnarchiverunarchiveObjectWithFile:path];

    return array;

}

    //根据文件名保存字典简单数据

+ (void)saveDictionaryComplexData:(id)objc withFileName:(NSString *)name {

        //    NSString *path = [self getFilePathWithName:name];

}

    //根据文件名取出字典简单数据

+ (NSDictionary *)getDictionaryComplexDataWithFileName:(NSString *)name {

        //    NSString *path = [self getFilePathWithName:name];

    returnnil;

}

    //归档单一对象数据

+ (NSData *)dataWithObjc:(id)objc {

    return [NSKeyedArchiverarchivedDataWithRootObject:objc];

}

    //反归档单一对象数据

+ (instancetype)getObjcWithData:(NSData *)data {

    return [NSKeyedUnarchiverunarchiveObjectWithData:data];

}

    //根据文件名清除保存的数据

+ (void)clearDataWithFileName:(NSString *)name {

    NSFileManager *manger = [NSFileManagerdefaultManager];

    NSString *path = [selfFilePathWithName:name];

    [manger removeItemAtPath:patherror:nil];

}

    //根据文件名获取文件路径

+ (NSString *)getFilePathWithName:(NSString *)name {

    NSString *path = [selfFilePathWithName:name];

    NSString *fileName = [NSStringstringWithFormat:@"%@.data",name];

    NSString *filePath = [pathstringByAppendingPathComponent:fileName];

    return filePath;

}

    //根据文件名获取文件夹路径

+ (NSString *)FilePathWithName:(NSString *)name {

    NSFileManager *manger = [NSFileManagerdefaultManager];

    NSString *documentPath =  [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) lastObject];

    NSString *fileName = [NSStringstringWithFormat:@"%@",name];

    NSString *path = [documentPathstringByAppendingPathComponent:fileName];

    BOOL isCreate =NO;

    BOOL existed = [mangerfileExistsAtPath:path isDirectory:&isCreate];

    if (!(isCreate ==YES && existed == YES)) {

        [manger createDirectoryAtPath:pathwithIntermediateDirectories:YESattributes:nilerror:nil];

    }

    return path;

}


/*

 * 处理一个数字加小数点的字符串,前面无0,保留两位。网上有循环截取的方法,如果数字过长,浪费内存,这个方法在优化内存的基础上设计的。

 */

+ (NSString*)getTheCorrectNum:(NSString*)tempString {

        //先判断第一位是不是 . , .0

    if ([tempStringhasPrefix:@"."]) {

        tempString = [NSStringstringWithFormat:@"0%@",tempString];

    }

        //计算截取的长度

    NSUInteger endLength = tempString.length;

        //判断字符串是否包含 .

    if ([tempStringcontainsString:@"."]) {

            //取得 .的位置

        NSRange pointRange = [tempStringrangeOfString:@"."];

            //判断 .后面有几位

        NSUInteger f = tempString.length -1 - pointRange.location;

           //如果大于2位就截取字符串保留两位,如果小于两位,直接截取

        if (f >2) {

            endLength = pointRange.location +2;

        }

    }

        //先将tempString转换成char型数组

    NSUInteger start =0;

    constchar *tempChar = [tempStringUTF8String];

        //遍历,去除取得第一位不是0的位置

    for (int i =0; i < tempString.length; i++) {

        if (tempChar[i] =='0') {

            start++;

        }else {

            break;

        }

    }

        //如果第一个字母为 . start后退一位

    if (tempChar[start] =='.') {

        start--;

    }

        //根据最终的开始位置,计算长度,并截取

    NSRange range = {start,endLength - start};

    tempString = [tempString substringWithRange:range];

    return tempString;

}


/*!

 

 * @brief 把格式化的JSON格式的字符串转换成字典

 

 * @param jsonString JSON格式的字符串

 

 * @return 返回字典

 

 */


+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString {

    if (jsonString ==nil) {

        returnnil;

    }

    NSData *jsonData = [jsonStringdataUsingEncoding:NSUTF8StringEncoding];

    NSError *err;

    NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:jsonData

                                                        options:NSJSONReadingMutableContainers

                                                          error:&err];

    if(err) {

        NSLog(@"json解析失败:%@",err);

        returnnil;

    }

    return dic;

}

    //词典转换为字符串


+ (NSString*)dictionaryToJson:(NSDictionary *)dic {

    

    NSError *parseError =nil;

    NSData *jsonData = [NSJSONSerializationdataWithJSONObject:dic options:NSJSONWritingPrettyPrintederror:&parseError];

    return [[NSStringalloc] initWithData:jsonDataencoding:NSUTF8StringEncoding];

}


@end




    NSUserDefaults轻量级永久存储数据使用介绍:http://blog.csdn.net/liushihua147/article/details/45603281



猜你喜欢

转载自blog.csdn.net/liushihua147/article/details/54923915