我正在尝试向我的应用程序添加贴纸扩展,以便用户可以在我的应用程序中创建贴纸,然后在消息中使用它们。但是,文件路径似乎不同,所以我无法将图像保存到文件路径,然后将它们加载到消息扩展名中。基本上,在应用程序及其扩展程序之间共享数据的最佳方式是什么?特别是对于 NSUserDefaults 来说太大的数据。
问问题
562 次
2 回答
1
AppGroups
如果您想在主项目和应用程序扩展之间共享数据,您必须启用。
启用它和共享数据的完整教程可以在这里找到 ( http://www.theappguruz.com/blog/ios8-app-groups )。
启用后AppGroups
,您可以将创建的贴纸存储在共享容器中,如下所示:
if let fileManager = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "")
{
let imageName = "imageName" // write your image name here
let imageLocationUrl = fileManager.appendingPathComponent(imageName)
// for saving image
if let data:Data = UIImagePNGRepresentation(image) {
do {
try data.write(to: imageLocationUrl)
}catch {
// couldn't write
}
}
}
为了获取图像,
if let fileManager = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "")
{
let imageName = "imageName" // write your image name here
let imageLocationUrl = fileManager.appendingPathComponent(imageName)
// for getting image
if let data:Data = Data(contentsOfFile: imageLocationUrl.path) {
let image = UIImage(data: data, scale: UIScreen.main.scale)
}
}
于 2017-10-31T19:23:57.800 回答
0
我想出了答案,将目标放在一个组中,您可以访问相同的 fileManager 路径
于 2017-10-31T19:14:22.303 回答