呈现 UIAlertController 时出现 CGContext 错误

Posted

技术标签:

【中文标题】呈现 UIAlertController 时出现 CGContext 错误【英文标题】:CGContext errors when presenting UIAlertController 【发布时间】:2015-10-19 21:47:22 【问题描述】:

问题:我展示了一个 UIAlertController 并在控制台中获得了一大堆与 CGContext 相关的错误消息。有三个错误,每个错误重复 15 到 20 次,所以看起来控制台爆炸了! 这些错误消息仅在我的应用程序的某些地方触发警报时出现 - 而不是在其他地方。在所有情况下,尽管有错误警告, UIAlertController 仍然显示得很好。 我没有做任何自定义绘图/动画。在我的代码中,我没有使用任何与 CGContext 相关的内容。

我正在使用 XCode 6.4 和 ios 8。这发生在模拟器和设备 (iPad) 上

对导致错误消息的原因以及为什么它只会在我的应用程序的某些部分发生有什么想法?

我看了这些帖子,但没有运气:

invalid context 0x0 under iOS 7.0 and system degradation

CGContext invalid context 0x0

我也尝试设置一个 CGPostError 符号断点,但它只是向我显示汇编语言 - 没有任何用处。

以下是 UIAlertController 每次呈现时重复出现的三个 CGContext 错误:

错误:CGContextAddPath:无效的上下文 0x0。这是一个严重的错误。此应用程序或它使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体下降。此通知是出于礼貌:请解决此问题。这将成为即将到来的更新中的致命错误。

错误:剪辑:无效上下文 0x0。这是一个严重的错误。此应用程序或它使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体下降。此通知是出于礼貌:请解决此问题。这将在即将到来的更新中成为致命错误。`

错误:CGContextDrawLinearGradient:无效的上下文 0x0。这是一个严重的错误。此应用程序或它使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性的整体下降。此通知是出于礼貌:请解决此问题。这将在即将到来的更新中成为致命错误。`

用于呈现 UIAlertController 的代码。 selfUIViewController。这可以通过按下按钮或选择表格视图单元格等触发:

let alert = UIAlertController(title: "TEST", message: "test", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Cancel, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)

【问题讨论】:

在你的代码中,self的类型是什么?此外,您需要更新到 XCode 7 self 是一个 UIViewController。自从我在几个不同的地方发出警报以来,其中之一。更新到 XCode 7 时遇到一些问题 - 我知道需要再试一次 【参考方案1】:

一旦我升级到最新的 XCode (7.2),这些错误似乎就停止了。

【讨论】:

不在我的 XCode 上。我遇到了同样的错误,在错误发生后我的应用变得奇怪。 我错了。即使在更新 XCode 和 Swift 之后,我仍然不时看到这些错误。它们似乎总是在呈现 UIAlertController 时被触发。为什么????

以上是关于呈现 UIAlertController 时出现 CGContext 错误的主要内容,如果未能解决你的问题,请参考以下文章

Swift 2,无法识别的选择器发送到 UIAlertController 的实例

从 AppDelegate 到 PresentedViewController 的警报:“尝试在...上呈现 UIAlertController 已经在呈现 UIAlertController”

呈现模态 UIViewController 时出现奇怪的崩溃

呈现页面时出现 UiNavigation 错误

呈现视图控制器时出现问题

使用 UIWindow() 进行单元测试时出现 NSInternalConsistencyException