0

我正在尝试将 Apple Pencil 支持添加到我的思维导图应用程序中。我已经在我的应用程序中使用 Core Data 来进行数据持久性,这一切都很好,没有任何错误。

我的 Apple Pencil 功能正常,但存储 Apple Pencil 数据时遇到问题。

我试图将 PKDrawing 对象添加到我的 MindMap 数据模型中,但我不断收到编译时错误“在范围内找不到类型 'PKDrawing'”

就我而言,我可以将 PKDrawing 对象存储到核心数据中,然后在应用程序加载时将其取回。但我显然没有做正确的事情。

在此处输入图像描述在此处输入图像描述

非常感谢任何帮助。

谢谢

更新:

所以我用过:

func convertToData(pkdrawing: PKDrawing) -> Data {
    let data = pkdrawing.dataRepresentation()
    return data
}

然后更新了我的模型数据和 savedContext 似乎一切正常。问题是当我尝试在打开应用程序时初始化数据时。我有:

func createDrawing(data: Data) -> PKDrawing {
    
    var loadedDrawing: PKDrawing
    
    do {
        try loadedDrawing = PKDrawing.init(from: data as! Decoder)
        return loadedDrawing
    } catch {
        print("Error loading drawing object")
        return PKDrawing()
    }
}

这给了我错误:

无法将“Foundation.Data”(0x1f3851a98)类型的值转换为“Swift.Decoder”(0x1ee5381a8)。2021-09-24 06:22:58.912173+0100 MindMappingApp [1137:612856] 无法将“Foundation.Data”(0x1f3851a98)类型的值转换为“Swift.Decoder”(0x1ee5381a8)。

我试过了:

尝试loadedDrawing = PKDrawing.init(来自:数据为!解码器)

作为:

尝试loadedDrawing = PKDrawing.init(来自:数据)

但我不断得到:

参数类型“数据”不符合预期类型“解码器”

有任何想法吗?提前致谢 :)

4

1 回答 1

1

与其尝试PKDrawing直接存储,不如存储Data与之关联的。

您的核心数据模型将有一个字段类型Data(如果您使用的是 GUI,则为二进制数据)。

当您需要实际使用该数据并隐蔽到/从 时PKDrawing,您可以使用:

于 2021-09-23T22:26:00.620 回答