NSParameterAssert 可以留在生产代码中吗?

Posted

技术标签:

【中文标题】NSParameterAssert 可以留在生产代码中吗?【英文标题】:Can NSParameterAssert be left in production code? 【发布时间】:2012-10-23 21:59:49 【问题描述】:

带有 NSParameterAsserts 的代码会导致苹果拒绝你的应用吗?

【问题讨论】:

我们的应用并没有因此被拒绝。我对任意应用程序会发生什么不做任何声明,但你应该在这个问题上没问题。只要知道这对用户来说是一个崩溃,否则您可以避免崩溃(如果数据不是您所期望的)。 【参考方案1】:

NSParameterAsserts 默认不在发布模式下运行。我有过让代码在 NSParameterAsserts([obj method]) 中执行的糟糕经历,这导致应用程序在发布时崩溃并在调试模式下完美运行。

【讨论】:

【参考方案2】:

如果定义了预处理器宏 NS_BLOCK_ASSERTIONS,则禁用断言。所有断言宏都返回 void。

并且默认在Release配置中定义。因此,可以将 NSParameterAsserts 留在生产环境中。

【讨论】:

以上是关于NSParameterAssert 可以留在生产代码中吗?的主要内容,如果未能解决你的问题,请参考以下文章

NSAssert和NSParameterAssert

断言啥时候应该留在生产代码中? [关闭]

iOS 中 NSParameterAssert 是干啥的之官方解释翻译篇

如何提高JVM的性能?

Go RabbitMQ

ActiveMQ消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found(示例代码(代