swift - 在 Swift 中使用 PencilKit。将 PKDrawing 保存到数据库的最佳方法是什么?如何序列化呢?

标签 swift serialization apple-pencil pencilkit

我正在使用 Swift 开发一个应用程序,其中包含带有“canvasview”的 PencilKit 来记笔记。一切工作正常,但我找不到将 canvasView.drawing 返回的值“转换”为字符串以将其上传并存储到数据库中的方法。

我可以获得图像,甚至是“base64EncodedString”,但我需要一种方法将“绘图”发送到服务器,然后从中加载,并显示在canvasView中。

我已经测试过将其转换为json,但是当从服务器加载时,我无法“反序列化”并将其再次转换为“绘图”呵呵。

提前致谢

最佳答案

如果您想将其恢复为 PKDrawing 对象,您只有一个选择 - 使用 Drawing.dataRepresentation() 来获取可以存储或写出的数据对象等。例如,我使用它来保存到 SQL 数据库:

self.pageEntity?.setValue(self.canvasView.drawing.dataRepresentation(), forKey: "markup")

您无法解释数据对象的结果,但可以将其重新导入 PKDrawing,如下所示:

do {
    try d = PKDrawing.init(data: markup)
        canvasView.drawing = d
    } catch {
        print("Error loading drawing object")
    }
}

关于swift - 在 Swift 中使用 PencilKit。将 PKDrawing 保存到数据库的最佳方法是什么?如何序列化呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59513117/

相关文章:

java - Gson 反序列化 - 尝试将 JSON 解析为对象

ios - 如何在 UIView 之外读取 ApplePencil 压力数据?

ios13 - 为什么 PKDrawing() != PKDrawing()? (铅笔套件)

ios - 放大用户位置 - Swift

swift - 如何从 Swift 应用程序与部署在区 block 链上的智能合约进行交互

php - 如何在 R 中读取 PHP serialize() 数据

ios - UIImagePickerController 可以用于从文档目录中选择图像吗?

ios - 针对不同的屏幕尺寸缩放触摸点

java - 应该将 Log4J 记录器声明为 transient 吗?