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

时间:2015-05-21 15:59:17

标签: ios watchkit

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

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

2 个答案:

答案 0 :(得分:9)

在Xcode中配置应用程序组后(请参阅Sharing Data with Your Containing iOS App部分),您可以获得共享容器/文件夹的路径,如下所示:

NSURL *groupContainerURL = [[NSFileManager defaultManager]
            containerURLForSecurityApplicationGroupIdentifier:@"YourAppGroupIdentifier"];
NSString *sharedDirectory = [groupContainerURL path];

然后,将UIImage(例如)写入该文件夹:

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

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

答案 1 :(得分:0)

  

与应用程序组共享数据。

     

在您的iOS应用和您的应用之间轻松共享少量数据   带有App Groups和NSUserDefaults的WatchKit扩展。访问   其他资源(如Core Data存储)使用共享容器   在您的iOS应用程序和WatchKit扩展之间,以简化数据   访问并提供最新信息。

查看WatchKitt App Architecture