如何在 WatchKit 扩展目标中获取核心数据持久存储路径

Posted

技术标签:

【中文标题】如何在 WatchKit 扩展目标中获取核心数据持久存储路径【英文标题】:How to get the core data persistent store path in WatchKit Extension target 【发布时间】:2014-11-21 11:51:40 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

您的 WatchKit 扩展将无权访问您应用的 Documents 目录中的 Core Data 存储,因为它位于扩展的沙箱之外。

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

【讨论】:

以上是关于如何在 WatchKit 扩展目标中获取核心数据持久存储路径的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WatchKit 扩展中计算当前位置

在主要目标中包含 pod,而不是在 WatchKit 扩展中

WatchKit Complication:从扩展委托获取复杂数据

WatchKit 核心数据同步

如何在 WatchKit 应用中获取当前位置?

WatchKit 和 MagicalRecord - 这可能吗?