我有一个动作扩展程序及其随附的应用程序。在我的操作扩展程序中,文件已创建,我希望能够从我的主应用程序访问它们。
使用UserDefaults不是一个选项,因为我必须共享相对较大的文件(包括图像,视频等)。
我怎样才能做到这一点?
答案 0 :(得分:3)
您执行此操作的方式是使用应用程序组。如您所见,您可以使用UserDefaults
进行分享,但也可以使用FileManager
进行分享。
通过FileManager
访问目录:
fileprivate func sharedContainerURL() -> URL? {
let groupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "com.dsdevelop.appgroup")
return groupURL
}
func writeSharedData(data:Data, to fileNamed:String) -> Bool {
guard let url = sharedContainerURL() else {
return false
}
let filePath = url.appendingPathComponent(fileNamed)
do {
try data.write(to: filePath)
return true
} catch {
print("Write failed: \(error)")
return false
}
}