swift – 如何解决“字符串插值产生可选值的调试描述;你是否意味
发布时间:2020-12-14 05:51:20 所属栏目:百科 来源:网络整理
导读:自从beta 8.3以来,数百万条警告“字符串插值产生一个可选值的调试描述;你是否意味着使这个显式?出现在我的代码中。 例如,警告弹出以下情况,选项可能导致零: let msg = "*** Error (options["taskDescription"]): cannot load (sUrl) (error)" 如以前
自从beta 8.3以来,数百万条警告“字符串插值产生一个可选值的调试描述;你是否意味着使这个显式?出现在我的代码中。
例如,警告弹出以下情况,选项可能导致零: let msg = "*** Error (options["taskDescription"]): cannot load (sUrl) (error)" 如以前设计的那样,对于我(和编译器),可选项被内插为“nil”。但是编译器改变了主意。 编译器建议添加一个带有描述的String构造函数,如下所示: let msg = "*** Error (String(describing: options["taskDescription"])): cannot load (sUrl) (error)" 显然,结果是明确的,但在我看来也非常麻烦。有更好的选择吗?我必须修复所有这些警告,或者更好地等待下一个测试版?
这是07-07中发生的一个变化,因为将可选(…)内插到合成字符串中的情况通常是不希望的,并且可能特别令人惊讶
in cases with implicitly unwrapped optionals.您可以在邮件列表
here上查看对此更改的全面讨论。
如在拉请求讨论中所提到的(尽管不幸的是不是通过Xcode) – 一个比使用String(描述:)更安静一点的方法是将一个转换添加到可插入的任何内容中,因此,例: var i: Int? = 5 var d: Double? = nil print("description of i: (i as Int?)") // description of i: Optional(5) print("description of d: (d as Double?)") // description of d: nil 哪个也可以推广为可选: print("description of i: (i as Optional)") // description of i: Optional(5) print("description of d: (d as Optional)") // description of d: nil 另一种可能的方法是静默警告是访问可选的debugDescription: print("description of i: (i.debugDescription)") // description of i: Optional(5) print("description of d: (d.debugDescription)") // description of d: nil 虽然值得注意的是, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |