Использование PencilKit в Swift. Как лучше всего сохранить PKDrawing в базу данных? Как его сериализовать?

Я работаю в приложении с использованием Swift, которое включает PencilKit с "просмотром холста" для заметок. Все работает нормально, но я не могу найти способ "преобразовать" значение, возвращаемое canvasView.drawing, в String для его загрузки и сохранения в базе данных.

Я могу получить изображение и даже "base64EncodedString", но мне нужен способ отправить "рисунок" на сервер, а затем загрузить с него и отобразить в canvasView.

Я тестировал его на преобразование в json, но я не могу "десериализовать" и снова преобразовать его в "рисунок", когда он загружается с сервера, хе-хе.

заранее спасибо

1 ответ

У вас есть только один вариант, если вы хотите восстановить его в объект 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")
    }
}
Другие вопросы по тегам