Ios UIGraphicsGetCurrentContext()返回nil-现在怎么办?
我正在编写一个iOS应用程序,并通过CocoaPods集成了2.0.0。 有时UIGraphicsGetCurrentContext()返回nil,我会收到“FDWaveformView未能获取图形上下文”日志消息Ios UIGraphicsGetCurrentContext()返回nil-现在怎么办?,ios,swift3,cocoapods,Ios,Swift3,Cocoapods,我正在编写一个iOS应用程序,并通过CocoaPods集成了2.0.0。 有时UIGraphicsGetCurrentContext()返回nil,我会收到“FDWaveformView未能获取图形上下文”日志消息 guard let context = UIGraphicsGetCurrentContext() else { NSLog("FDWaveformView failed to get graphics context") return
guard let context = UIGraphicsGetCurrentContext() else {
NSLog("FDWaveformView failed to get graphics context")
return
}
有人知道如何解决这个问题吗?我通过更新到2.1.0解决了这个问题我通过更新到2.1.0解决了这个问题确保您正在调用UIGraphicsGetCurrentContext()inside draw(rect:cRect))方法
还要确保您没有手动调用draw(rect:CGRect)。而是调用setNeedsDisplay(),它将调用draw(rect:CGRect)。确保您正在draw(rect:CGRect)方法内调用UIGraphicsGetCurrentContext()
还要确保您没有手动调用draw(rect:CGRect)。而是调用setNeedsDisplay(),它将调用draw(\urect:CGRect)。为什么要使用guard@Murloc-这是适当使用
防护装置的完美示例。乔恩显然将要在上下文中做一些其他的事情,如果他没有得到一个,他希望尽早退出。这里的guard
没有问题。Joern,问题不在于调用UIGraphicsGetCurrentContext
,而在于调用它的位置。您显然不是从有效的上下文调用它(例如,从draw
内部或UIGraphicsBeginImageContextWithOptions
和UIGraphicsEndImageContext
之间)我建议在记录此消息的位置添加一个断点,然后查看堆栈并找出如何在有效上下文之外调用它。但这里没有足够的信息让我们为你们诊断。谢谢你们!我将调试库代码,看看哪个对象的draw()中发生了什么?为什么要保护@Murloc-这是适当使用防护装置的完美示例。乔恩显然将要在上下文中做一些其他的事情,如果他没有得到一个,他希望尽早退出。这里的guard
没有问题。Joern,问题不在于调用UIGraphicsGetCurrentContext
,而在于调用它的位置。您显然不是从有效的上下文调用它(例如,从draw
内部或UIGraphicsBeginImageContextWithOptions
和UIGraphicsEndImageContext
之间)我建议在记录此消息的位置添加一个断点,然后查看堆栈并找出如何在有效上下文之外调用它。但这里没有足够的信息让我们为你们诊断。谢谢你们!我将调试库代码,看看哪个对象的draw()中发生了什么?