Swift断言生产应用程序中的行为

 mobiledu2502925453 发布于 2023-01-11 17:39

我正在阅读Swift电子书中的Assertions部分,看起来断言与Objective-C对应物的工作方式非常相似.但是,在作为生产应用程序运行时,我可以在文档中找不到任何关于运行时行为的信息.Objective-C NSAssert承诺永远不会因断言失败而终止生产应用程序.Swift中的情况是一样的吗?

2 个回答
  • 基于Apple在其文档中使用的语言,我会说在生产环境中忽略断言.

    如果您的代码在调试环境中运行时触发断言,例如在Xcode中构建和运行应用程序时,您可以确切地看到无效状态发生的位置,并在触发断言时查询应用程序的状态.断言还允许您提供有关断言性质的合适调试消息.

    并在"注意"块中:

    断言导致您的应用程序终止,并且不能替代以不可能出现无效条件的方式设计代码.然而,在无效的情况是可能出现的情况,一个断言,以确保这些条件突出和有效的方式开发过程中发现,您的应用程序发布之前.

    2023-01-11 17:40 回答
  • debug和release之间的区别在于编译器参数之间的区别.最可能的答案是会有一些特殊的编译器设置(类似于-eaJava).

    编辑
    Swift编译器有一个名为的参数-assert-config

    -assert-config指定assert_configuration替换.可能的值包括Debug,Release,Replacement.

    Release,断言被忽略.不确定Debug和之间的区别Replacement.

    在此输入图像描述

    2023-01-11 17:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有