Swift 3:将数据转换为字符串返回 nil 值

2024-05-26

将数据转换为字符串会返回 nil 值。

Code:

// thus unwraps the image
if let image = image{
        print("Saving image data")

    // don't unwrap here
        if let data = UIImagePNGRepresentation(image){ 
            let str = String(data: data, encoding: .utf8)

            print(str)

        }
    }

我不知道原因。 另外,如何将字符串转换回数据?


这不起作用,因为当您将图像的字节解释为字符串时,该字符串无效。并非所有混乱的数据都是有效的 utf8 字符串。即并非每个 n 位(8 位,有时 16 位)的集合都是有效的 utf8 代码点。 Swift String api 循环遍历您传递给它的数据对象以验证它是否是有效的字符串。在您的情况下,没有理由认为此 Data 是有效的字符串,因此它不起作用。

关于 utf8 的好读物:https://www.objc.io/issues/9-strings/unicode/ https://www.objc.io/issues/9-strings/unicode/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 3:将数据转换为字符串返回 nil 值 的相关文章

随机推荐

  • Bootstrap 4、导航栏固定顶部和其他粘顶元素

    这里是再现 https jsbin com lawafu edit html 输出 https jsbin com lawafu edit html output 这是一个错误吗 一个失误 一个问题 一个无法实现的想法 Before scr
  • 如何用该单词的单一版本替换重复单词

    我正在尝试使用 C 处理似乎使用语音转文本的文字记录 我遇到的一个主要问题是重复单词和 或短语 我很想使用正则表达式来替换它们 这里有些例子 我我我真的很想去 但是我不去 去不了 我真的很想使用正则表达式替换 所以它会变成这样 我真的很想去
  • XGBoost 产生预测结果和概率

    我可能正在文档中查看它 但我想知道 XGBoost 是否有办法生成结果的预测和概率 就我而言 我正在尝试预测多类分类器 如果我能返回Medium 88 那就太好了 分类器 中 预测概率 88 参数 params max depth 3 ob
  • C++ 类的互斥成员导致编译错误

    我不确定为什么当我向 myClass 添加互斥体成员时会发生这种情况 在本例中为 mu Error C2661 std tuple lt void thiscall MyNameSpace myClass void MyNameSpace
  • 适用于 Web 和移动设备的 ASP.NET Web API 社交身份验证

    我的问题有点复杂 所以请耐心等待我 因为我试图很好地阐明我正在努力解决的问题 Goal 拥有一个 ASP NET 网站 允许用户通过用户名 密码或也具有 API 的社交网站 Facebook Twitter Google 等 注册和登录 该
  • 如何在Android Studio中授予对registry.bin的访问权限?

    每当我打开 Android Studio 3 0 1 时 Gradle 构建都会失败 错误如下所示 它以前工作正常 我不记得对其设置进行过任何更改 不过 现在已经不会再继续下去了 请帮忙 我被困住了 关闭 Android Studio 并尝
  • 使用 C# .NET 从操纵杆获取输入

    我在谷歌上搜索了这个 但我想到的唯一的东西已经过时并且不起作用 有人知道如何使用 C NET 获取操纵杆数据吗 由于这是我在研究 C 中的操纵杆 游戏手柄输入时在 google 上获得的最高点击次数 因此我认为我应该发布一个回复供其他人查看
  • 帧缓冲区和在 opengl 中使用着色器

    我对帧缓冲区有点困惑 我想要做的是使用附加了多个纹理的帧缓冲区 填充每个纹理 然后使用着色器组合 混合 所有纹理以创建新的输出 听起来很容易 是的 我也是这么想的 但我不明白 如何将当前绑定的纹理传递给着色器 您需要的是将纹理放入特定的槽中
  • JavaScript 中的平等[重复]

    这个问题在这里已经有答案了 在 javascript 中工作时 有人可以为我提供关于相等 不相等和类型强制测试的良好参考或解释吗 从我读到的内容中 我看到使用 eqeq 与 eqeqeq 有两个思想原则 有些人认为您不应该使用 eqeq 而
  • 使用 ACPI 在 MS-DOS 中关闭计算机

    我在基于 Pentium 的计算机上运行 MS DOS 6 22 主板支持 ACPI 并且想知道是否有一个可以用来关闭计算机的汇编语言例程 或者它是否比那个更难 即主板 具体的 基本上 我想创建一个小程序来从命令行关闭计算机 这是专门为此编
  • 从 ProcessThreadCollection 中按名称获取正在运行的线程

    在搜索了 Stack Overflow 问题并进行了一些谷歌搜索后 我仍然没有得到它 我知道您可以使用 Thread isAlive 方法检查单个线程是否正在运行 但我想检查特定的 FooThread 是否仍在当前进程的所有正在运行的线程之
  • WPF - 是否必须处置 HwndSource?

    我在用着HwndSource在非主窗口的 WPF 窗口中 为了挂钩窗口过程 WndProc 来接收一些消息 WinSource HwndSource FromHwnd new WindowInteropHelper this Handle
  • blueimp jQuery-File-Upload - 如何提交不附加文件的表单?

    我找到了有关如何在提交文件上传表单时添加附加表单数据的解决方案 这个问题是如果没有要上传的文件 如何上传附加数据 我在任务管理应用程序中使用 blueimp jquery file upload 来拖放文件并将其附加到任务 该脚本已初始化并
  • Java泛型类型要么扩展要么是父类

    我正在寻找一些如下所示的代码 public class Parent
  • 我在 Android studio 中遇到错误

    在此输入图像描述 https i stack imgur com bvqID png我是安卓新手 我刚刚在 android studio 中创建了一个项目 并且在它的中遇到了问题manifest xml 错误是在 android icon
  • Android - 检测电容式触摸屏上的触摸压力?

    我听说过 MotionEvent e float press e getPressure 但这只会在没有触摸时返回 0 当我的手指触摸屏幕时返回 1 是否可以找到手指在触摸电容屏上施加的压力值 或者我的预感是否正确 即这只适用于电阻屏幕 M
  • 使用 vue-cli 服务时如何禁用 linting?

    我正在使用以下命令使用 vue cli 运行我的项目 vue cli service 服务 open 如何禁用所有 linting 目前每次保存时都会重新进行 linting 并且更改代码需要很长时间 我已经把 lintOnSave fal
  • ImageMagick 没有解码委托

    我正在尝试使用 imagemagick 转换图像 但收到此错误 转换 此图像格式 i imgur com nTheJ jpg 没有解码委托 error constitute c ReadImage 532 我正在这样做 convert ht
  • 对列表中的相邻元素进行分组

    假设我想编写一个函数来执行此操作 输入 1 1 3 3 4 2 2 5 6 6 输出 1 1 3 3 4 2 2 5 6 6 它将相同的相邻元素分组 这个方法的名称应该是什么 此操作有标准名称吗 In 1 1 3 3 4 2 2 5 6 6
  • Swift 3:将数据转换为字符串返回 nil 值

    将数据转换为字符串会返回 nil 值 Code thus unwraps the image if let image image print Saving image data don t unwrap here if let data