在 Swift 中,如何保存 class 对象?
In Swift how can I save a class object?
我使用第三方库 https://github.com/fpg1503/Aho-Corasick-Swift 创建了一个 Trie 对象的实例。构建 Trie 对象的示例代码如下:
let trie = Trie.builder()
.add(keyword: "hers")
.add(keyword: "his")
.add(keyword: "she")
.add(keyword: "he")
.build()
然而,在我的例子中,关键字的数量大约是 30 万个,这需要大量构建这个 Trie 对象。我的 objective 是在应用程序外部仅构建一次 trie 对象并将其保存以供应用程序使用以对任何文本进行推理。像这样:
let emits = trie.parse(text: "any text")
但是,我正在努力将这个 Trie 对象保存在 swift 中。在 Java 中(对于 android),我很容易地完成了这个任务,但在 Swift 中它看起来很难做到。我正在努力使用 Codable 来实现这一点,但这需要所有 类 从头开始符合 Codable。我试图复制 (https://github.com/fpg1503/Aho-Corasick-Swift) 的所有代码并更改所有 类 以符合可编码。我的项目现在已成功构建,但在编码此 Trie 对象时出现运行时错误:
Thread 1: EXC_BAD_ACCESS (code=2, address=0x7ffee0005ff8)
如何在 swift 中实现此目的?
问题似乎是 State 是递归的,因此当您对 State 进行编码时,您会得到无限递归,直到产生堆栈溢出。
我使用第三方库 https://github.com/fpg1503/Aho-Corasick-Swift 创建了一个 Trie 对象的实例。构建 Trie 对象的示例代码如下:
let trie = Trie.builder()
.add(keyword: "hers")
.add(keyword: "his")
.add(keyword: "she")
.add(keyword: "he")
.build()
然而,在我的例子中,关键字的数量大约是 30 万个,这需要大量构建这个 Trie 对象。我的 objective 是在应用程序外部仅构建一次 trie 对象并将其保存以供应用程序使用以对任何文本进行推理。像这样:
let emits = trie.parse(text: "any text")
但是,我正在努力将这个 Trie 对象保存在 swift 中。在 Java 中(对于 android),我很容易地完成了这个任务,但在 Swift 中它看起来很难做到。我正在努力使用 Codable 来实现这一点,但这需要所有 类 从头开始符合 Codable。我试图复制 (https://github.com/fpg1503/Aho-Corasick-Swift) 的所有代码并更改所有 类 以符合可编码。我的项目现在已成功构建,但在编码此 Trie 对象时出现运行时错误:
Thread 1: EXC_BAD_ACCESS (code=2, address=0x7ffee0005ff8)
如何在 swift 中实现此目的?
问题似乎是 State 是递归的,因此当您对 State 进行编码时,您会得到无限递归,直到产生堆栈溢出。