iOS共享分机 - 如何访问核心数据

问题描述:

我有一个从核心数据中获取信息的主机应用程序。现在我需要一个共享扩展,它将显示来自主机应用程序数据的一些信息。iOS共享分机 - 如何访问核心数据

我已经启用了应用程序组并为主机和扩展都定义了,我可以从我的扩展中访问此路径。

NSURL *storeURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"com.application"]; 

它只有一个/库路径,当我得到目录和文件。

NSArray * files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:url error:nil]; 
[files enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    NSLog(@"fileName : %@",(NSString *)obj); 
}]; 

我的主机应用程序的sqlite文件位于Documents目录下。我怎样才能让这个sqlite文件在共享容器下可用?我需要移动整个数据库吗?其他解决方案。

感谢

如果想直接从数据库文件的访问数据,你必须把它放到共享容器。我不认为有另一种选择,你不能创建slink或任何东西的主机应用程序。

我正在解决类似的问题,我决定使用组NSUserDefaults来共享共享扩展中需要的内容 - 因为它只是几个变量。这可能是一个简单的解决方案

+0

感谢您的回复。 NSUserDefaults对我来说是不够的,不想重复数据,因为它可能会改变超时。我有一个由xcdatamodel创建的sqlite,我想我必须将此文件移动到共享容器?对 ? – dracula