0

我正在使用 SWXMLHASH Swift 库来解析一些第 3 方 XML 数据。此数据有时会返回对我的应用程序无效的值。发生这种情况时,我希望忽略这些数据并返回nil而不是Self在我的deserialize函数中。

例如,我有一些这样的 XML:

<Root>
    <ColourChanges>
        <ChangeCount>0</ChangeCount>
        <ChangeItems></ChangeItems>
    </ColourChanges>
</Root>

我希望能够测试 ChangeCount 值,如果它等于 0,我希望能够在我的 ColourChanges 结构nil的函数中返回。deserialize

看来,当我deserialize如下定义我的函数时:

static func deserialize(_ node: XMLIndexer) throws -> ColourChanges?

我收到一个运行时错误,抱怨deserialize实现不存在。

deserialize我相信当我遇到不需要的值并在调用者中处理它时,我可以通过从我的结构的方法中抛出来处理这个问题,但是,如果我可以只返回它会更干净nil

有没有人遇到过类似的问题,或者对如何实现这一点有任何建议?

谢谢你的帮助。

4

1 回答 1

0

从上面添加我的建议:

我使用的模式是这样的情况,即空对象模式 - 基本上你返回类似ColourChanges.emptywhere empty 的方法,它使用预设值构建ColourChanges实例以指示它是空的还是空的。这对你有用吗?

于 2017-05-09T14:02:05.297 回答