最近,在一次升级Xcode后打包运行到手机发现UI界面有点混乱,调试了一会发现是collectionView或者tableView的代理方法不走的原因。
具体描述如下:
1 . 直接debug模式下运行到手机上app 没有问题
2. 打release包的时候tableview的部分协议方法不走
3. 在父类BaseTableViewController中如果重写了这些协议方法, 子类再继承父类BaseTableViewController , 重写代理方法 如果加上override . 这些协议api 是可以执行的 .
大家Xcode升级10.2.1有没有这个问题
解决方案:
1. 不准备升级swift5.0的小伙伴可以直接下载Xocde10 或者Xcode10.1进行打包
2.在父类里面重写所有的代理方法,注: 这个比较坑 ,个人也觉得不可取,有些方法必须有返回值,
3.经过查看Xcode的函数调用栈 发现重写了override方法的代理系统会调用一下@objc的代理方法,所以我就在swift的代理方法前面加一个@Objc,结果亲测没问题了。(暂时未发现是Xcode的问题还是我的代码有问题)