最近写一个拼车项目,马上提交测试了发现在 iOS10上边很多地方崩溃,由于笔者所有 UI界面都是用 xib 完成的,导致 iOS11一些新的特性,没有办法在 iOS10上使用,具体如下.
1 使用到 New Color Set 导致运行在 iOS10上边崩溃
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named _UIColorAttributeTraitStorage'复制代码
虽然我在代码层面做过了版本适配 ,但是xib 上的就没法使用了,所幸 xib 中使用到 New Color Set 地方不多,很快就替换成16进制颜色.
2 UITableViewCell高度在 iOS10上边不正确 iOS11我使用的是 safeArea Autolayout tableView 高度都是交给系统去计算 ,设置UITableViewCell高度为 UITableViewAutomaticDimension.
这个问题也好解决 ,由于我所有 TableView 都是在 YVBaseViewController 里边创建,只需要在YVBaseViewController里边添加如下代码即可解决问题.
总结 : 之前一直未在 iOS10上边运行,导致今天发现 iOS10上边会出现崩溃,除了要不Assets.xcassets里边的 Color Set 删除外,其他方面改动不大.笔者由于所有地方UI 界面都是在 xib 上完成,所以修复时候只需要针对 xib文件即可.
写在最后笔者还是推荐使用 IB 来搭建 UI 界面,高效快速搞定界面布局,将主要精力用在业务逻辑方面. 业务功能采用继承和多态可以减少很多重复代码, xib 其实也可以通过复制粘贴快速创建的,让 UI 界面不再花去你大量时间.
好了,我是大兵布莱恩特,欢迎加入博主技术交流群,iOS 开发交流群