Ios UIGraphicsGetCurrentContext()返回nil-现在怎么办?

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

我正在编写一个iOS应用程序,并通过CocoaPods集成了2.0.0。 有时UIGraphicsGetCurrentContext()返回nil,我会收到“FDWaveformView未能获取图形上下文”日志消息

   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()中发生了什么?