在iPhone和Watch应用程序的文档目录中共享数据

Jam*_*mes 4 ios watchkit

如何使用应用程序组在文档目录中共享数据(如图像)?

如果这不可能,那么在Watch App和iPhone应用程序之间共享图像的最佳方式是什么?我可以将图像二进制数据存储在coredata中,但这不是很有效.我也可以使用NSUserDefaults完成此操作,但这又无效.

Mik*_*son 9

在Xcode中配置应用程序组后(请参阅" 使用包含iOS应用程序共享数据 "一节),您可以获得共享容器/文件夹的路径,如下所示:

NSURL *groupContainerURL = [[NSFileManager defaultManager]
            containerURLForSecurityApplicationGroupIdentifier:@"YourAppGroupIdentifier"];
NSString *sharedDirectory = [groupContainerURL path];
Run Code Online (Sandbox Code Playgroud)

然后,写一个UIImage(例如)到该文件夹​​:

NSData *imageData = UIImagePNGRepresentation(image);
NSString *filePath = [sharedDirectory stringByAppendingPathComponent:@"image.png"];
[imageData writeToFile:filePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)

您可以在Watch扩展程序和iOS应用程序中使用相同的逻辑来共享文件.您还可以创建自己的目录,因为共享容器没有"标准"目录结构.