美文网首页数据处理IOS相关iOS
iOS中NSData、NSString、NSDate和Base6

iOS中NSData、NSString、NSDate和Base6

作者: lanmoyingsheng | 来源:发表于2017-02-27 18:00 被阅读2687次

    一、NSDate与NSString转换,NSDateFormatter是重点。

    // 日期格式化类,资源消耗大,使用时最好写成单例。
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"];
    

    1、NSDate转NSString

    NSString *dateString = [formatter stringFromDate:date];
    

    2、NSString转NSDate

    NSDate *date = [formatter dateFromString:@"2017-02-27 16:44:30 100"];
    

    二、NSData与NSString转换,NSData是重点。

    严格意义上字符串也是一种二进制数据,只是表现形式不一样。
    1、NSString转NSData

    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
    

    2、NSData转NSString

    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    

    3、图片数据image转NSData

    UIImage *image = [UIImage imageNamed:@""];
    
    NSData *data = UIImagePNGRepresentation(image);
    data = UIImageJPEGRepresentation(image, 0.1);  //图片体积缩小比例
    
    或者
    NSData *data = [[NSData alloc] initWithContentsOfFile:@""];
    data = [[NSData alloc] initWithContentsOfURL:URL]; //卡当前线程
    

    三、Base64加密,又称转码。

    Base64加密(转码)情况

    NSData是转码的桥梁。转码后的数据分为Base64形式的NSDataNSString字符串。其实Base64也就这样:每3字节转为4字节,只是是数据形式是NSData和NSString。

    1、普通字符串加密成Base64形式的NSData、NSString。

    NSData *data = [@"string" dataUsingEncoding:NSUTF8StringEncoding];
    
    // 加密成Base64形式的NSData
    NSData *base64Data = [data base64EncodedDataWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
    // 加密成Base64形式的NSString
    NSString *base64String = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
    

    2、Base64形式的NSData解密成Base64形式的字符串、普通字符串。

    // Base64形式的NSData解密成Base64形式的字符串
    NSString *base64String = [base64Data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
    
    // Base64形式的NSData解密成普通字符串
    NSData *data = [[NSData alloc] initWithBase64EncodedData:base64Data options:NSDataBase64DecodingIgnoreUnknownCharacters];
    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    

    3、把图片加密为Base64形式的字符串/NSData。

    UIImage *image = [UIImage imageNamed:@""];
    NSData *data = UIImagePNGRepresentation(image); // 图片数据
    
    // data加密成Base64形式的字符串。
    NSString *base64String = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; 
    
    // data加密成Base64形式的NSData
    NSData *base64Data = [data base64EncodedDataWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; 
    

    4、把一段Base64形式的字符串/NSData解密为图片。

    // Base64形式的字符串为data
    NSData *data = [[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters];
    
    // Base64形式的NSData转换为data
    data = [[NSData alloc] initWithBase64EncodedData:base64Data options:NSDataBase64DecodingIgnoreUnknownCharacters];
    
    // 图片数据
    UIImage *image = [[UIImage alloc] initWithData:data];
    

    相关文章

      网友评论

        本文标题:iOS中NSData、NSString、NSDate和Base6

        本文链接:https://www.haomeiwen.com/subject/hxwzwttx.html