用先前的PKDrawing重新填充PKCanvas

问题描述

我试图用以前以数据形式存储在sqlite3数据库中的PKDrawing重新填充PKCanvas,但是Canvas没有显示以前的图形。以下代码是canvasView中的viewDidLoad函数。我不确定这是否是问题,但是当我尝试打印PKDrawing时,它显示它包含0个笔触。当我直接查询数据库时,它显示“ wrd?”,但是我不知道那是什么意思。

override func viewDidLoad() {
    super.viewDidLoad()
    
    /* ... 
     * CODE THAT SETS UP CANVASVIEW 
     * ... */
    
    // Check if canvas for selected date has already been created
    let result = CanvasManager.main.check(selectedDate: selectedDate!)
    
    // If canvas for selected date has not yet been created
    if Mirror(reflecting: result).children.count == 0 {
        // create new canvas to store in db
        print("CREATING NEW CANVAS")
        _ = CanvasManager.main.create(date: selectedDate!,drawing: drawing.dataRepresentation())
        let _ = CanvasManager.main.check(selectedDate: selectedDate!)
    }
    else {
        // load existing drawing
        print("LOAD EXISTING CANVAS")
        let canvas = Canvas(id: result[0].id,date: result[0].date,drawing: result[0].drawing)
                   
        do {
            var oldDrawing = PKDrawing()
            // Try to populate drawing with prevIoUs canvas drawing
            try oldDrawing = PKDrawing.init(data: canvas.drawing)
            print("DRAWING: \(oldDrawing)") // Prints: DRAWING: PKDrawing(drawing: <PKDrawing: 0x600000a70e40 EE83 0 strokes>)
            canvasView.drawing = oldDrawing
        }
        catch {
            print("Error info: \(error)")
        }
        
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)