从关于避免强制展开的帖子开始,总是提出强行解包会导致程序崩溃,因此这是一件坏事.当一个问题确实存在错误时崩溃有什么问题呢?
请举例说明强行展开可能是坏事.
(我不是说强行打开适合所有事情.)
有许多例子表明这种类型的强制展开是合适的.例子包括:
>获取应用程序包中已知文件的路径(nil表示您在开发期间忘记定位文件).
>强制转换对UITableView dequeueReusableCell的调用(nil表示你的故事板中有错误).
>当您专门向Calendar询问该组件时,从DateComponents获取特定组件(nil表示您有拼写错误).
显然还有很多其他情况下强制解包是合适的,但你必须清楚地了解这些情况.
但是,有许多运行时决策导致您无法保证的选项,并且不应强制解包此类情况.
例子包括:
>处理任何用户输入.永远不要假设用户输入有效数据.永远不要假设值可以按预期转换.始终检查零结果.
>解析JSON结果.永远不要假设您获得的数据符合某种预期格式,即使该格式已明确记录并且似乎总是有效.事情随着时间而变化.优雅地处理这些意外数据,而不是仅仅假设一个值将始终存在于假定的数据类型中.
>处理任何可以抛出或返回可选结果的API.事情可能会出错.错误发生.永远不要以为你会得到有效答案.代码防守.
最后,开发人员具有适当的经验和理解选项如何工作,他们的意思,以及何时值可能或者实际上不是零的开发人员能够在适当的时候安全地使用强制解包.明智地使用它.
永远不要使用强制解包,因为Xcode建议让编译器满意.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。