从应用程序的文档文件夹加载图像(iOS 14 小部件)

问题描述 投票:0回答:1

我想知道是否可以(以及如何!)从小部件加载保存在我的主应用程序的文档沙箱文件夹中的文件。

我的主应用程序(UIKit)将图像保存到

FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
。作为.png。我有一个从我的应用程序加载这些图像的功能,但想知道如何在我的小部件时间轴中加载它们。

这是我在 UIKit 中加载图像的代码:

    var documentsUrl: URL {
    return FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
}

private func loadImage(fileName: String) -> UIImage? {
    let fileURL = documentsUrl.appendingPathComponent(fileName)
    do {
        let imageData = try Data(contentsOf: fileURL)
        return UIImage(data: imageData)
    } catch {
        print("Error loading image : \(error)")
    }
    return nil
}

当我在目标之间使用 UserDefaults 时,我的应用程序组正在正常工作。

谢谢!

swift swiftui widget sandbox ios14
1个回答
0
投票

您可以将 containerURL 与 AppGroup ID 一起使用

guard let urlPath = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: AppConfiguration.appGroupID)?.appendingPathComponent(YOUR_PATH_OR_FILE_NAME),
              FileManager.default.fileExists(atPath: urlPath.path) else {
            throw DatabaseFileManagerError.cannotFound
        }
        
        
return urlPath
© www.soinside.com 2019 - 2024. All rights reserved.