我正在使用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
那么它会更清晰。
有没有人遇到类似的问题,或者有关如何实现这一问题的任何建议?
感谢您的帮助。
答案 0 :(得分:0)
从上面添加我的建议:
我使用的模式是像这样的情况是空对象模式 - 基本上你返回类似
ColourChanges.empty
的东西,其中empty是一个方法,用于构建一个ColourChanges
实例,其中包含预设值以指示它是空的或null。这对你有用吗?