swift - 在 Swift 中使用 PencilKit。将 PKDrawing 保存到数据库中的最佳方法是什么?如何序列化它?
问题描述
我正在一个使用 Swift 的应用程序中工作,该应用程序包括带有“canvasview”的 PencilKit 来记笔记。一切正常,但我找不到将 canvasView.drawing返回的值“转换”为 String 以将其上传并存储到数据库中的方法。
我可以获得一个图像,甚至是一个“base64EncodedString”,但我需要一种方法将“绘图”发送到服务器,然后从中加载,并显示在 canvasView 中。
我已经测试过将其转换为json,但是当从服务器加载时,我无法“反序列化”并再次将其转换为“绘图” 呵呵。
提前致谢
解决方案
如果要将其还原为 PKDrawing 对象,则只有一个选择-使用 drawing.dataRepresentation() 来获取可以存储或写出的 Data 对象等。例如,我使用它来保存到 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")
}
}
推荐阅读
- indexing - 在没有父级的 Marklogic 中创建地理空间对索引
- security - CoAP 的 TinyDTLS 问题
- javascript - Javascript:合并 2 个数组(不同的属性)
- linux - Not able to install Docker compose in Linux
- python - 基于分布的python随机抽样
- android - Outlook 电子邮件应用程序未添加附件
- c# - 解码 ASN.1 - PKCS#7 非分离签名
- vba - 仅将每个工作簿中特定工作表上的多个工作簿中的值复制并粘贴到 Excel 中的一个工作表中
- elasticsearch - Elasticsearch - 获取前“n”个值并执行聚合
- java - 比较没有大小写的字符串