3

我开发了一个 iOS 应用程序,它使用 Core Data 框架并将持久存储保存在应用程序文档目录中。进入应用程序 terget,我可以使用以下方法检索持久存储路径:

- (NSString *)applicationDocumentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

然后我创建了一个新的 WatchKit 扩展目标,我想检索 iOS 应用程序保存的持久存储,但是当我尝试在手表扩展的接口控制器中使用上述方法时,它返回一个不同的路径

如何在 watchkit 扩展目标中找到 iOS 应用程序的持久存储路径?

4

1 回答 1

10

您的 WatchKit 扩展将无权访问应用程序的 Documents 目录中的核心数据存储,因为它位于扩展的沙箱之外。

如果您希望您的扩展程序能够访问数据存储,那么您需要将其放在应用程序和扩展程序都可以访问的位置。我建议阅读 App Group Containers(“与包含的应用程序共享数据”部分),添加这些容器的目的就是为了在相关应用程序和扩展程序之间共享文件。

于 2014-11-21T21:40:49.633 回答