我想知道是否可以(以及如何!)从小部件加载保存在我的主应用程序的文档沙箱文件夹中的文件。
我的主应用程序(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 时,我的应用程序组正在正常工作。
谢谢!
您可以将 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