swxmlhash条件反序列化可能返回nil

时间:2017-05-03 10:33:19

标签: swift3 swxmlhash

我正在使用SWXMLHASH Swift库来解析一些第三方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实现不存在。

我相信当我遇到一个不需要的值并在调用者中处理它时,我可以通过从我的struct deserialize方法中抛出来处理这个问题,但是,如果我可以返回nil那么它会更清晰。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

从上面添加我的建议:

  

我使用的模式是像这样的情况是空对象模式 - 基本上你返回类似ColourChanges.empty的东西,其中empty是一个方法,用于构建一个ColourChanges实例,其中包含预设值以指示它是空的或null。这对你有用吗?