前言
分享iOS开发中遇到的问题,和相关的一些思考,本次内容包括:UIKit的iOS11问题、数据库问题定位、线上Crash处理、内存问题分析。
正文
1、iOS 11的UITabbar的高度异常
问题描述:iOS 11+iPhone,在横竖屏切换的场景下,UITabbarViewController的底部栏UITabbar会出现高度异常。
问题定位:经过调试发现,从竖屏到横屏的时候,系统会改变UITabbar的高度;而我们的底部栏高度是自定义的值,故而会导致系统修改后的高度与自定义值不相同的情况。
解决方案,KVO:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (self.tabBar.height != KSTabBarHeight) { self.tabBar.height = KSTabBarHeight; self.tabBar.bottom = SCREEN_HEIGHT; }
Stackoverflow的类似情况
2、CoreData数据库升级时间长
问题描述:App在升级的时候会对CoreData数据库进行一次迁移,而某些用户反馈升级时间长达数分钟。
问题定位:CoreData数据库迁移使用的是系统提供的自动迁移,经过本地测