如何从扩展 iOS 8 获取 NSManagedObjectContext 实例

Posted

技术标签:

【中文标题】如何从扩展 iOS 8 获取 NSManagedObjectContext 实例【英文标题】:How to obtain NSManagedObjectContext instance from Extension iOS 8 【发布时间】:2014-07-21 13:01:44 【问题描述】:

我创建了键盘扩展,并且需要访问 CoreData。它适用于容器应用 AppDelegate。但是从扩展我无法访问数据。 首先,我需要 NSManagedObjectContext 的实例,而我没有。

那么如何使用 AppGroup 或其他方式获取此上下文?

顺便说一句,当扩展程序启动时,它会在日志中打印下一条消息:

Warning: CFFIXED_USER_HOME is not set!  It should be set to the simulated home directory.
Failed to inherit CoreMedia permissions from 16808: (null)

这有什么问题?

【问题讨论】:

你解决了吗?请尽快告诉我。 nope=( 我决定避免使用CoreData,因为它对我的情况来说很慢。您仍然可以尝试在应用程序中读取数据,将其写入AppGroup,如下所述,但这不是解决方案这个问题。 我也没有找到任何方法在我的键盘扩展中获取核心数据,只有 NSUserDefault 有效。苹果似乎没有在键盘扩展中提供对核心数据的访问权限。可能适用于任何其他扩展。 看看这个帖子:http://***.com/questions/26065539/magicalrecord-coredata-today-extension-ios8-will-they-play 【参考方案1】:

按照本教程,创建一个应用组并从该组中检索数据

http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/

【讨论】:

这不适用于键盘扩展(共享核心数据)。共享 NSUserDefault 工作正常。

以上是关于如何从扩展 iOS 8 获取 NSManagedObjectContext 实例的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Photos API 在 iOS 8.0 中检索照片扩展名 (jpg/png)?

如何从 ios 应用程序获取手表套件扩展集中的通知?

获取 ios 8 自定义键盘扩展的“因内存错误而终止”

如何从 iOS 8 开始获取浏览器 UserAgent 字符串?

如何在不基于扩展的 IOS 中获取 Mime 类型

IOS 8 App Group 访问键盘扩展中的容器应用程序文件