输入dictionary(fromTXTRecord:)来自网络,可能来自应用程序外部,甚至来自设备。但是,Apple 的文档说:
... 如果 txtData 不能表示为 NSDictionary 对象,则断言失败。
断言失败会使程序员(我)无法处理错误,这对于处理外部数据的方法来说似乎不合逻辑。
如果我在 Mac 上的终端中运行它:
dns-sd -R 'My Service Name' _myservice._tcp local 4567 asdf asdf
Run Code Online (Sandbox Code Playgroud)
我在 iPhone 上运行的应用程序崩溃了。
dictionary(fromTXTRecord:)期望 TXT 记录数据 ( asdf asdf) 为key=val格式。如果像上面一样,一个单词不包含任何内容,则=该方法将无法解析它并使断言失败。
除了根本不使用该方法并实现我自己的解析之外,我认为没有办法解决这个问题,这感觉不对。
我错过了什么吗?
Handlebars.js有部分,您可以使用<script>模板片段和Javascript调用来单独定义和注册registerPartial.我发现这很麻烦,我更喜欢Jinja风格的定义宏,你用相同的模板语言.
那里有帮手可以让我这样做:
{{#macro macro-name}}
This is {{ bar }} and this is {{ foo }}
{{/macro}}
{{macro-name bar="BAR"}} {{! foo would be searched in the outer context}}
Run Code Online (Sandbox Code Playgroud)
我没有运气就搜索过.