2015-05-21 40 views
2

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

如果这是不可能的在Watch应用程序和iPhone应用程序之间共享图像的最佳方式是什么?我可以将图像二进制数据存储在coredata中,但效率不高。我也可以使用NSUserDefaults来完成这个工作,但是这样做效率不高。

回答

7

后你已经在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应用程序中使用相同的逻辑来共享文件。您也可以创建自己的目录,因为共享容器没有“标准”目录结构。

+0

如何在手表套件扩展程序目标中使用应用程序组标识符?当我尝试在目标中启用此应用程序组时,我得到的错误是没有可用于watchkit扩展的应用程序ID,因为在此问题中有聆听:http://stackoverflow.com/questions/37046501/using-应用基团换watchkit延伸和容器应用内-AN-应用ID与 - IDENT – itinance

0

与应用程序组共享数据。

通过应用程序组和NSUserDefaults轻松在您的iOS应用程序和您的 WatchKit扩展程序之间共享少量数据。要访问 等其他资源(例如核心数据存储),请在iOS应用和WatchKit扩展程序之间使用共享容器 ,以简化数据访问并提供最新信息 。

看看在WatchKitt App Architecture

相关问题