从Today Extension访问app Documents文件夹

时间:2014-09-23 03:28:02

标签: ios8 ios-app-extension ios-app-group

我已成功通过userDefaults在我的应用程序和今日扩展程序之间共享数据,但是我遇到位于应用程序文档文件夹中的实际文件时遇到了问题。

当我在我的应用中使用此代码时:

var documentsDir:NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String

它返回:

/var/mobile/Containers/Data/Application/296494AA-946C-40E0-8646-F0895E131DCB/Documents/

但在扩展程序中返回:

/var/mobile/Containers/Data/PluginKitPlugin/AB484342-537A-4CE7-9EF3-F2CAE352C8A3/Documents/

显然,文件不存在。

我读到了应该使用的地方:

let containerURL = manager.containerURLForSecurityApplicationGroupIdentifier("group.com.company.app")
let filePath = containerURL.path

但它返回:

/private/var/mobile/Containers/Shared/AppGroup/CD7CF610-EB5F-4246-8D30-D7F8BFA6A219

也不起作用。

如何让我的iOS 8 Today Extension读取位于Documents中的容器应用程序文件?

谢谢!

1 个答案:

答案 0 :(得分:15)

您无法从扩展程序访问包含应用的文档文件夹。

但是您可以创建一个共享容器,可以通过包含应用及其所有扩展来访问该容器。

使用containsURLForSecurityApplicationGroupIdentifier,您走在正确的轨道上。您只需在应用程序和扩展程序中使用它。它不访问文档文件夹,而是访问另一个容器。

如果要更新已在文档文件夹中存储数据的现有应用,则需要将数据移至s8-today-extension

查看此链接。 http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/

相关问题