iOS 17.0 UIGraphicsBeginImageContextWithOptions 崩溃处理

在升级到iOS17后你会发现,之前版本运行的很好,这个版本突然会出现一个运行闪退。报错日志为***** Assertion failure in void _UIGraphicsBeginImageContextWithOptions(CGSize, BOOL, CGFloat, BOOL)(), UIGraphics.m:410**

跟踪到具体的报错位置如下所示:

UIGraphicsBeginImageContextWithOptions(size, NO, 0);

根据查阅的资料,iOS 17上使用UIGraphicsBeginImageContext()size为0时,就会报相同的错误。

我估计我这个问题应该是topbottom设置为0的原因,内部也是通过UIGraphicsBeginImageContext()实现的导致;

看官方API时,也会发现UIGraphicsBeginImageContext()这个方法也被废弃了被UIGraphicsImageRenderer替代,如下所示:

所以根据API的提示,为了解决这个问题,我们就需要去改造当前方法,如下所示:

这样就解决了,新版本崩溃问题的;

相关推荐
Magnetic_h16 小时前
【iOS】单例模式
笔记·学习·ui·ios·单例模式·objective-c
归辞...18 小时前
「iOS」——单例模式
ios·单例模式·cocoa
yanling202320 小时前
黑神话悟空mac可以玩吗
macos·ios·crossove·crossove24
归辞...1 天前
「iOS」viewController的生命周期
ios·cocoa·xcode
crasowas1 天前
Flutter问题记录 - 适配Xcode 16和iOS 18
flutter·ios·xcode
2401_852403551 天前
Mac导入iPhone的照片怎么删除?快速方法讲解
macos·ios·iphone
SchneeDuan1 天前
iOS六大设计原则&&设计模式
ios·设计模式·cocoa·设计原则
JohnsonXin2 天前
【兼容性记录】video标签在 IOS 和 安卓中的问题
android·前端·css·ios·h5·兼容性
蒙娜丽宁2 天前
Go语言错误处理详解
ios·golang·go·xcode·go1.19
名字不要太长 像我这样就好2 天前
【iOS】push和pop、present和dismiss
学习·macos·ios·objective-c·cocoa