项目中用到MJRefresh来刷新数据,昨天在iOS9上的iPhone5s上测试项目的时候崩溃了。打开调试发现在MJRefresh库中的mj_reloadData方法死循环,改用iOS11的iPhone7测试却没有出现。
应该iOS9的问题,网上找的一些答案有说是因为库冲突导致reload被methodSwizzling 了两次,建议把其中一个methodSwizzling去掉。以下是MJRefresh作者回复:
在下一个版本,我可能会让automaticllyHidden完全失效。如果现在继续解决,可以先把以下2个load方法注释掉,但automaticllyHidden = YES会失效
需要把库从pod中删除,手动添加到项目,然后修改。我改了之后还是不行,因为有好几个库有替换方法,感觉修改起来很麻烦,而且我发现我其他的tableview都没有这个问题,为什么这个会出现?对比一下发现我这里是用到textfield作为tableview的sectionView,并通过输入字符来reload,尝试把textfield从tableview中移出来固定在view上,结果就不会崩溃了。。。神奇
这是我个人的情况,还是建议使用作者所说的方法,其他包含替换的库也一并拉出来修改。