【问题标题】:Access app Documents folder from Today Extension从 Today Extension 访问 app Documents 文件夹
【发布时间】:2014-11-17 03:29:06
【问题描述】:

我已通过 userDefaults 在我的应用程序及其 Today Extension 之间成功共享数据,但在涉及应用程序 Documents 文件夹中的实际文件时遇到了问题。

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

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 中的容器应用程序文件?

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 该链接没有关于在磁盘上使用共享容器的任何内容。它使用 NSUserDefaults。
    • 您只能在watchOS中为扩展创建共享应用组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多