小编ate*_*elo的帖子

NSNetService dictionaryFromTXTRecord 对无效输入的断言失败

输入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格式。如果像上面一样,一个单词不包含任何内容,则=该方法将无法解析它并使断言失败。

除了根本不使用该方法并实现我自己的解析之外,我认为没有办法解决这个问题,这感觉不对。

我错过了什么吗?

cocoa nsnetservice ios swift

5
推荐指数
1
解决办法
668
查看次数

把手中的宏

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)

我没有运气就搜索过.

javascript templates reusability handlebars.js

2
推荐指数
1
解决办法
1116
查看次数