XinHuIOS

Results 4 comments of XinHuIOS

你好,请问这个问题 您解决了吗 遇到了同样的问题

> > 我也遇到了这个问题,iOS16.1 iPhone12,xcode14.1,目前无法解决 > > 临时解决了,目前只要是从没有导航控制器的controller present出图片选择器都会崩溃,只要用导航控制器present就不会闪退了,self.navigationController presentViewController: 我这么写 也不行 估计架构不一样吧 只能把全屏幕展示去掉了

> 一个处理方案 > ![image](https://user-images.githubusercontent.com/21355885/221750304-1eb7b111-91b2-4709-adeb-d0f66d01b8c2.png) 作者您好,我是把[class gl_swizzleMethod:@selector(setObject:forKeyedSubscript:) withMethod:@selector(gl_setObject:forKeyedSubscript:)]; 这个交换方法注释调了,也没问题. 而且我在项目中写做了测试, NSMutableDictionary * md =[NSMutableDictionary dictionary]; [md setObject:nil forKey:@"kkk"]; (会崩溃) md[@"kkk"] = nil; (不崩溃) [md setObject:nil forKeyedSubscript:@"kkkk"];(不奔溃) 不知道当时您涉及的初衷是啥 为啥要加这个交换呢 ,我要是去掉这个交换方法,会有啥弊端呢 .大佬希望您能给解答下.

> > 官方解析 setObject:forKeyedSubscript: 这个方法中的参数 object 是可以传 nil 的,并且传 nil 时会将对应的 key 移除,目前 NilSafe 中 hook 了这个方法是同时将 obj 为 nil 的情况过滤了,可能这样会导致一些系统性逻辑错误,你可以试试将该条件移除试试 > > ``` > - (void)gl_setObject:(id)obj forKeyedSubscript:(id)key { >...