美文网首页
Base64EncodingOptions枚举值

Base64EncodingOptions枚举值

作者: 冷武橘 | 来源:发表于2020-04-15 16:22 被阅读0次

对于- (NSString *)base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options 这个方法是我们在使用base64编码经常使用的。其中options

typedef NS_OPTIONS(NSUInteger, NSDataBase64EncodingOptions) {

    NSDataBase64Encoding64CharacterLineLength = 1UL << 0,    每64个字符插入\r或\n

    NSDataBase64Encoding76CharacterLineLength = 1UL << 1,    每76个字符插入\r或\n


    NSDataBase64EncodingEndLineWithCarriageReturn = 1UL << 4,    插入字符为\r

    NSDataBase64EncodingEndLineWithLineFeed = 1UL << 5,          插入字符为\n
                  
}

前两个选项为是否允许插入字符,以及多少个字符长度插入,两个可以选其一或者都不选。后两个选项代表要插入的具体字符。比如我们想76个字符后插入一个\r则可以NSDataBase64Encoding76CharacterLineLength | NSDataBase64EncodingEndLineWithCarriageReturn

- (void)viewDidLoad {
    [super viewDidLoad];
    NSData *data = [@"哥哥给他他他不会后哥哥哥哥哥哥哥哥哥哥哥哥哥哥哥给他他" dataUsingEncoding:NSUTF8StringEncoding];
    NSString *str1 = [data base64EncodedStringWithOptions: NSDataBase64Encoding76CharacterLineLength];
    NSString *str2 = [data base64EncodedStringWithOptions: NSDataBase64Encoding64CharacterLineLength];
    NSString *str3 = [data base64EncodedStringWithOptions: NSDataBase64Encoding76CharacterLineLength|NSDataBase64EncodingEndLineWithCarriageReturn];
    NSString *str4 = [data base64EncodedStringWithOptions: NSDataBase64Encoding76CharacterLineLength|NSDataBase64EncodingEndLineWithLineFeed];
    NSString *str5 = [data base64EncodedStringWithOptions: kNilOptions];
}
屏幕快照 2019-04-19 下午5.52.22.png

通过以上打印可再次说明:

  • NSDataBase64Encoding76CharacterLineLength 每76个字符插入\r\n
  • NSDataBase64Encoding64CharacterLineLength每64个字符插入\r\n
  • NSDataBase64Encoding76CharacterLineLength |64EncodingEndLineWithCarriageReturn 每76个字符插入\r
  • NSDataBase64Encoding76CharacterLineLength |NSDataBase64EncodingEndLineWithLineFeed 每76个字符插入\n
  • kNilOptions \r\n都不插入

小结:NSDataBase64EncodingOptions的值

仅仅决定了输出时编码的格式,加不加换行符和回车符。这样虽然不影响编码,但需要了解一下,以防和H5或安卓等对接时因为编码格式的问题造成数据解析异常,这种情况开发中是真实存在的。

相关文章

  • Base64EncodingOptions枚举值

    对于- (NSString *)base64EncodedStringWithOptions:(NSDataBas...

  • Swift与OC的语法简单对比(常用语法二)

    20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...

  • 枚举类

    1.枚举类型的定义: 枚举类型定义的一般形式为 enum 枚举名{//枚举值表枚举值1;枚举值2;...} 在枚举...

  • Swift-枚举名、枚举值的相互转化

    通过枚举名获取到枚举值 或者 通过枚举值获取到枚举名称 .End

  • Swift 2 学习笔记 10.枚举

    课程来自慕课网liuyubobobo老师 枚举 枚举基础 枚举之原始值 枚举之关联值 枚举递归

  • Swift 5 枚举

    枚举 关联值: 枚举的成员值和其他类型的值关联储存,存储在枚举变量中 原始值: 枚举成员使用相同的默认值预先对应,...

  • 枚举

    枚举 本节内容包括: 枚举语法 匹配枚举值与switch语句 相关值 原始值 枚举语法 注意:不像 C 和 Obj...

  • 枚举 函数 结构体 类

    import Foundation //枚举 /* enum 枚举名:值类型 { case 枚举情况 = 初始值 ...

  • swift中的枚举

    枚举有默认值 原始值不占用枚举内存 关联值

  • go 枚举类型

    这里需要用到enum库 定义一个枚举类型 操作枚举enum 查看枚举值 修改自定义枚举值 添加和移除枚举值

网友评论

      本文标题:Base64EncodingOptions枚举值

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