背景
XCode升级到14,跑iOS16的模拟器,运行项目后发现,涉及到导航栏上有文字形式的UIBarButtonltem的页面,打开此类页面都会卡死。
解决方案
使用方法交换,将系统的 initWithTitle:style:target:action
方法实现换成initWithCustomView:
但这个方案其实是有一定的缺陷,具体还是得看业务场景,比如涉及到列表选择的场景,右上角按钮会动态的变更名称,比如【全选】【取消全选】,之前业务上是直接使用 .title
直接来进行变更,方法交换后,依旧需要去业务中一处一处去改动。
不建议使用方案1
最终在TZImagePickerController的issue中找到了真正的问题所在。
项目中对Dictionary
进行了方法交换,处理了setObject:forKeyedSubscript: (obj=nil)
导致的。
建议使用方案2