问题标签 [nsassert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
164 浏览

ios - NSAssert 会占用 iOS 设备上的任何内存吗?

如果我们在使用 NSLogs 的设备上运行应用程序,那么它可能会在一定程度上降低应用程序的速度。

NSAssert 在内存方面的行为方式是否与 NSLog 相同?

任何意见或建议将不胜感激。

先感谢您。

0 投票
4 回答
3947 浏览

ios - NSAssert 与 NSCAssert

NSAssert和 和有什么不一样NSCAssert?当我探索他们的实现时,它们看起来非常相似,我找不到我的问题的答案。

我想它也会解释 和 之间的NSParameterAssert区别NSCParameterAssert

0 投票
2 回答
101 浏览

ios - ios:如何获取在 photo.app 中删除的照片 url

我的应用程序出现问题,该应用程序与照片相关,

在我的应用程序中,我需要通过 Photo.app 删除的照片 url,有没有办法在我们的应用程序中找到在 photo.app 中删除的照片

提前致谢。

0 投票
2 回答
204 浏览

objective-c - 处理 Objective C 客户端代码中的错误的实践

我已经看到使用一系列实践的 Objective C 代码,从传递 NSError 的指针以获取执行完成状态 - 到使用 NSAssert - 到实现 @throw - 到中继回调中返回的状态代码的委托 - 到旧的c 方法返回一个 boolean/int 表示 1 是成功和 co。

我无法确定我应该如何处理在客户端设备上运行的应用程序中发生的错误的一致模式。例如,对于以下情况,您建议如何处理:

  • 客户端尝试访问网络资源,网络资源超时/返回500?
  • 在逻辑代码部分甚至不应该发生的意外状态?
  • 尝试写入磁盘失败?(磁盘空间不足,没有权限和代码)

来自 Java,服务器端实践异常是首选武器,使用 Objective C 和 C 似乎存在异常但不鼓励。NSAssert 似乎很苛刻,因为它会使应用程序崩溃,这在大多数情况下并不是最佳解决方案。所以,我很感激最佳实践建议。

0 投票
1 回答
175 浏览

ios - 提高 NSInternalInconsistencyException 是否保证默认崩溃?

NSAssert用来检测代码中不可恢复的情况。我也在发布模式下启用了断言,因为如果我的代码中的断言失败,它肯定是不可恢复的。

NSAssertraisesNSInternalInconsistencyException并且我已经阅读了关于NSInternalInconsistencyException被某些框架捕获并因此不会导致应用程序崩溃的相互矛盾的帖子。它是否正确?我希望我的应用程序在NSAssert失败时崩溃。

如果在后台线程(例如调度队列)中抛出,它也会崩溃吗?

0 投票
0 回答
33 浏览

ios - 如何在我的 iOS 框架中获取断言以仅打印文件名而不是整个路径?

假设在我的代码中命中了以下断言:

在堆栈跟踪的顶部,打印了文件的整个路径:

出于隐私原因,是否有一种简单的方法可以使打印的路径静音,或者只打印file.m:16而不影响堆栈跟踪的质量?

0 投票
0 回答
130 浏览

objective-c - Xcode 8 不打印断言消息(例如当 NSInternalInconsistencyException 发生崩溃时)

我的项目出了点问题。调试应用程序和应用程序崩溃时,它不会打印断言消息。通常它应该显示如下内容:

但我得到的只是第一条消息。我只知道断言失败,我没有解释为什么。由于不知道崩溃的原因,这使得调试比应有的困难得多。

我环顾四周,有人建议这可能是因为优化已打开,但事实并非如此。我的项目和目标都将调试优化设置为无,我确定我正在使用调试配置运行我的项目。我尽我所能,到目前为止没有任何帮助,我想不出这可能是什么。

我使用的是 Xcode 8,项目是混合 Swift 3.0 + Objective-C。我曾经有 cocoapods,但我改用 Carthage(我希望这可能会有所帮助,但事实并非如此)。