专栏首页韦弦的偶尔分享在iOS上清除应用的启动屏幕缓存

在iOS上清除应用的启动屏幕缓存

每当我在我的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()

以上内容来自Quick tip: clearing your app’s launch screen cache on iOS 简单翻译一下搬运过来,希望有用

附:

  • 文章提到的缓存目录在沙盒下如下图所示:
    app启动图缓存.png
  • 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];

赏我一个赞吧~~~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hacking with iOS: SwiftUI Edition - 书虫项目(二)

    当用户在ContentView中点击一本书时,我们将显示一个详细视图,其中包含更多信息:书籍的类型,简短的评论等等。我们还将重用新的RatingView,甚至对...

    韦弦zhy
  • iOS设置LaunchScreen.StoryBoard 后启动黑屏

    最近写了个Demo。。。LaunchScreen是白底黑字,然后。。。每次启动都是黑屏, 以前也遇到过,无非就是同时设置了Assets.xcassets和La...

    韦弦zhy
  • 100 Days of SwiftUI —— Day 32:Animation(一)

    史蒂夫•乔布斯在2001年推出MacOSX之后,就开始用Aqua这个视觉主题来驱动macOS,他说:“我们让屏幕上的按钮看起来很好,你会想点它们的。”我不知道你...

    韦弦zhy
  • 腾讯云服务器关闭防火墙

    本文章提供windows2008,windows2012以及windows2016操作系统如何关闭防火墙的截图步骤;

    用户4049265
  • 【漏洞通告】fastjson<=1.2.62远程代码执行漏洞通告

    2月19日,NVD发布的Jackson-databind JNDI注入漏洞(CVE-2020-8840),在jackson-databind中的反序列化gadg...

    绿盟科技安全情报
  • 日处理20亿数据,实时用户行为服务系统架构实践

    携程实时用户行为服务作为基础服务,目前普遍应用在多个场景中,比如猜你喜欢(携程的推荐系统)、动态广告、用户画像、浏览历史等等。 以猜你喜欢为例,猜你喜欢为应用内...

    CSDN技术头条
  • 日处理20亿数据,实时用户行为服务系统架构实践

    以猜你喜欢为例,猜你喜欢为应用内用户提供潜在选项,提高成交效率。旅行是一项综合性的需求,用户往往需要不止一个产品。作为一站式的旅游服务平台,跨业务线的推荐,特别...

    华章科技
  • 【从零开始用Swift开发一个iOS应用(仿微博)】开篇-1. demo上手体验

    Application/AppDelegate.swift文件中的@UIApplication注解,表示这个Class类是程序的入口

    悟空聊架构
  • 第一季 | UpdateModelMixin 了解下,实现用户信息修改

    Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编...

    小团子
  • SpringCloud 妹子图微服务架构出炉了

    前一段时间购置了阿里云的2C8G的云服务器,博客也迁移过来了,心思闲着也是闲着,何不搭建一套小黄图的微服务。说干就干,撸起袖子先画一张图。

    小柒2012

扫码关注云+社区

领取腾讯云代金券