用于 SwiftUI 预览的应用数据文件存储在哪里

Posted

技术标签:

【中文标题】用于 SwiftUI 预览的应用数据文件存储在哪里【英文标题】:Where are app data files stored for SwiftUI preview 【发布时间】:2019-12-21 15:33:26 【问题描述】:

当我在 XCode 模拟器中运行应用程序时,它的应用程序支持目录位于:

~/Library/Developer/CoreSimulator/Devices/425816A6-9CE8-4884-9D74-B8246D3BA2C5/data/Containers/Data/PluginKitPlugin/729EDADB-CD24-4DFE-A3A4-C378C5743803/Library/Application%20Support/

但是,当我对 SwiftUI 文件使用画布预览时,Application Support 目录位于何处?

【问题讨论】:

【参考方案1】:

如下代码:

struct Test_Previews: PreviewProvider 
    static var previews: some View 
        Test()
            .onAppear 
            let paths = NSSearchPathForDirectoriesInDomains(
                FileManager.SearchPathDirectory.applicationSupportDirectory, 
               .userDomainMask, true)
            print("Preview in: \(paths)")
        
    

生成(用户主目录替换为 ~):

Preview in: ["~/Library/Developer/Xcode/UserData/Previews/Simulator Devices/DF93C244-90C0-4AED-887C-316CE2CEFC21/data/Containers/Data/Application/3372351E-A38D-40DD-9F1E-A58A2B30A2AB/Library/Application Support"]

【讨论】:

这在尝试在预览中查看托管对象时派上用场。我发现print 命令没有写入调试器。必须在该行中放置一个断点,然后 po paths

以上是关于用于 SwiftUI 预览的应用数据文件存储在哪里的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:尝试加载本地 JSON 数据时,Canvas 出现预览错误

使用 SwiftUI @Binding 预览崩溃:与应用程序的通信中断

SwiftUI / iOS / iPhone如何在存储之前加密数据/图像以及在哪里/如何在本地存储,一般最佳实践?

SwiftUI Preview Canvas 与核心数据一起崩溃

SwiftUI Preview 不适用于 MacOS 构建,而它适用于 iOS 构建

在通常通过调用数据库获取来处理的 SwiftUI 中设置预览数据的最佳方法是啥?