美文网首页
一句话笔记(30)

一句话笔记(30)

作者: 天空中的球 | 来源:发表于2017-09-25 23:29 被阅读92次

    一句话笔记,某段时间内遇到或看到的某个可记录的点。 2017-09-25

    • 一直打印 [aqme] 254: AQDefaultDevice (173): skipping input stream 0 0 0x0
    • iOS 中 authCode 加密不适配中文的情况
    • 让低版本的 Xcode 适配 高版本 Xcode Api 方法
    一、不断打印 [aqme] 254: AQDefaultDevice (173): skipping input stream 0 0 0x0

    在使用完 YTPlayerView 点击视频后,发现一直在打印这个 [aqme] 254: AQDefaultDevice (173): skipping input stream 0 0 0x0 日志, 还以为是什么地方没被释放呢

    后来才在发现是 模拟器在 Xcode 上的一个 BUG,可以通过如下调试:

    具体两步骤

    真机上是木有的,其实也可以不理会,只是略微有点强迫症的,可以这样操作下。
    方法图片来源: https://github.com/muhku/FreeStreamer/issues/313

    二、iOS 中 authCode 加密不适配中文的情况

    以前我有用 3DES 加密与后台来通讯的,这次我们项目中用的是 autoCode 的方法,但是我们这边发现我们写的这块对 英文之外的语言不支持,然后这就尴尬啦

    • discuz 经典php加密解密函数 authcode 解析,先了解下 authCode, 我们 Objective-C 中主要是翻译下其加解密的。

    • 目前的问题是: 当我们加密非英语的时候,后台解密不出来

    • 目测原因: iOS 中具体的 编码 和 其 PHP 对应不上

    • 暂时对于我们这边的解决的方法是: 在其我们这边异或运算加密之前在对其 Base64 处理下。意思就是多一层加密,再异或运算先处理下,让其规避这个问题。

    PS: 备注学习:

    先记录下:ASCII、iso8859-1 、GB2312、GBK 、Unicode 、UTF8的区别

    • ASCII: 当今通用的单字节编码系统。
    • GB2312:ANSI编码中的一种,对ASNI编码最初始的ASCII编码进行扩充,为了满足国内在计算机中使用汉字的需要,中国国家标准总局发布了一系列的汉子字符集国家标准编码,统称为GB码,或国标码。
    • GBK: 汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。GBK兼容GB2312.
    • iso8859-1 : 属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列,是最早的编码。
    • Unicode: 是一个字符集,为为每一个「字符」分配一个唯一的 ID,由国际组织设计,可以容纳全世界所有语言文字的编码方案。
    • UTF 的由来:考虑到 Unicode编码不兼容 iso8859-1编码,而且容易占用更多的空间,因为对于英文字母,Unicode 也需要两个字节来表示,所以 Unicode 不便于传输和存储,并产生了UTF 。
    • UTF-8: 是一个编码规则,将「码位」转换为字节序列的规则。 用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。

    注意 GBK 和 UTF-8 是如何转换的,都是需要通过 Unicode 转换的。

    GBK 和 UTF-8 的转换

    此处笔记来源:

    三、让低版本的 Xcode 适配 高版本 Xcode Api 的方法
    #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_10_3
        // iOS SDK 10.3 以后版本的处理
    #else
        // iOS SDK 10.3 之前版本的处理
    #endif
    
    • #define __IPHONE_10_3 == 103000
    • #define __IPHONE_11_0 == 110000

    当然也有小伙伴直接判断是否大于等于 110000 的,也可行。

    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000
    // New Action
    #endif
    

    注意这样的操作是为了让 Xcode 8 在运行 Xcode 9 方法的时候不会报错。当然你想 Xcode 8 运行 iOS 11 的真机又是另一码事的!

    参考来源: iOS开发之多系统版本兼容

    相关文章

      网友评论

          本文标题:一句话笔记(30)

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