如何清除 iOS APP 的启动屏幕缓存
2023-03-14 22:22:12 时间
本文转载自微信公众号「网罗开发」,作者韦弦Zhy 。转载本文请联系网罗开发公众号。
简介
每当我在我的 iOS 应用程序中修改了 LaunchScreen.storyboad 中的某些内容时,我都会遇到一个问题:
系统会缓存启动图像,即使删除了该应用程序,它实际上也很难清除原来的缓存。
有时我修改了 LaunchScreen.storyboad,删除应用程序并重新启动,它显示了新的 LaunchScreen.storyboad,但 LaunchScreen.storyboad 中引用的任何图片都不会显示,从而使启动屏显得不正常。
今天,我在应用程序的沙盒中进行了一些挖掘,发现该 Library 文件夹中有一个名为 SplashBoard 的文件夹,该文件夹是启动屏缓存的存储位置。
因此,要完全清除应用程序的启动屏幕缓存,您所需要做的就是在应用程序内部运行以下代码(已将该代码扩展到 UIApplication 的中):
- import UIKit
- public extension UIApplication {
- func clearLaunchScreenCache() {
- do {
- try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
- } catch {
- print("Failed to delete launch screen cache: \(error)")
- }
- }
- }
在启动屏开发过程中,您可以将其放在应用程序初始化代码中,然后在不修改启动屏时将其禁用。
这个技巧在启动屏出问题时为我节省了很多时间,希望也能为您节省一些时间。
使用
- UIApplication.shared.clearLaunchScreenCache()
- 文章提到的缓存目录在沙盒下如下图所示:
- OC 代码,创建一个 UIApplication 的 Category
- #import <UIKit/UIKit.h>
- @interface UIApplication (LaunchScreen)
- - (void)clearLaunchScreenCache;
- @end
- #import "UIApplication+LaunchScreen.h"
- @implementation UIApplication (LaunchScreen)
- - (void)clearLaunchScreenCache {
- NSError *error;
- [NSFileManager.defaultManager removeItemAtPath:[NSString stringWithFormat:@"%@/Library/SplashBoard",NSHomeDirectory()] error:&error];
- if (error) {
- NSLog(@"Failed to delete launch screen cache: %@",error);
- }
- }
- @end
OC使用方法
- #import "UIApplication+LaunchScreen.h"
- [UIApplication.sharedApplication clearLaunchScreenCache];
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的