可能 return nil 的 swxmlhash 条件反序列化
swxmlhash conditional deserialization that may return nil
我正在使用 SWXMLHASH Swift 库来解析一些第 3 方 XML 数据。这些数据有时可能会 return 使用对我的应用程序无效的值进行编辑。发生这种情况时,我希望在我的 deserialize
函数中忽略此数据和 return nil
而不是 Self
。
例如,我有一些 XML 这样的:
<Root>
<ColourChanges>
<ChangeCount>0</ChangeCount>
<ChangeItems></ChangeItems>
</ColourChanges>
</Root>
我希望能够测试 ChangeCount 值,如果它等于 0,我希望能够在我的 ColourChanges 结构的 deserialize
函数中 return nil
。
当我定义我的 deserialize
函数时,似乎如下:
static func deserialize(_ node: XMLIndexer) throws -> ColourChanges?
我收到一个运行时错误,抱怨 deserialize
实现不存在。
我相信当我遇到不需要的值并在调用者中处理它时,我可以通过从我的结构的 deserialize
方法中抛出来处理这个问题,但是,如果我可以 return 会更干净nil
.
有没有人遇到过类似的问题,或者对如何实现有任何建议?
感谢您的帮助。
从上面添加我的建议:
A pattern I've used is cases like this is the null object pattern - basically you return something like ColourChanges.empty
where empty is a method that builds a ColourChanges
instance with preset values to indicate that it is empty or null. Would that work for you?
我正在使用 SWXMLHASH Swift 库来解析一些第 3 方 XML 数据。这些数据有时可能会 return 使用对我的应用程序无效的值进行编辑。发生这种情况时,我希望在我的 deserialize
函数中忽略此数据和 return nil
而不是 Self
。
例如,我有一些 XML 这样的:
<Root>
<ColourChanges>
<ChangeCount>0</ChangeCount>
<ChangeItems></ChangeItems>
</ColourChanges>
</Root>
我希望能够测试 ChangeCount 值,如果它等于 0,我希望能够在我的 ColourChanges 结构的 deserialize
函数中 return nil
。
当我定义我的 deserialize
函数时,似乎如下:
static func deserialize(_ node: XMLIndexer) throws -> ColourChanges?
我收到一个运行时错误,抱怨 deserialize
实现不存在。
我相信当我遇到不需要的值并在调用者中处理它时,我可以通过从我的结构的 deserialize
方法中抛出来处理这个问题,但是,如果我可以 return 会更干净nil
.
有没有人遇到过类似的问题,或者对如何实现有任何建议?
感谢您的帮助。
从上面添加我的建议:
A pattern I've used is cases like this is the null object pattern - basically you return something like
ColourChanges.empty
where empty is a method that builds aColourChanges
instance with preset values to indicate that it is empty or null. Would that work for you?