接手的项目采用了GVUserDefault管理用户登陆状态、设置偏好等信息。
新的开发工作是iOS14增加小组件功能,需要根据用户在主app登陆的登陆状态在小组件展示不同的界面。
采用了NSUserdefault使用-suit初始化group的方式实现项目间的数据共享,该方案可以实现新存储的数据共享,而存储在NSUserdefault默认储存空间的数据获取不到,导致用户升级后没有了登陆状态。
解决方案是利用runtime对NSUserdefault的objectforkey:方法进行交换,在自定义的方法中判断原来的实现是否获取到了数据,如果获取到了正常返回,否则到NSUserdefault的standard中去获取数据